Sylius/bin/build-package
2016-11-28 17:40:21 +01:00

78 lines
2 KiB
Bash
Executable file

#!/usr/bin/env bash
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../etc/bash/common.lib.sh"
build_package() {
[[ "$(echo "$2" | grep -c "no-install")" = "1" ]] && local install=false
[[ "$(echo "$2" | grep -c "no-validate")" = "1" ]] && local validate=false
[[ "$(echo "$2" | grep -c "no-test")" = "1" ]] && local test=false
[[ "$(echo "$2" | grep -c "no-clean")" = "1" ]] && local clean=false
if ${install}; then
eval "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/install-package $1"
fi
if ${validate}; then
eval "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/validate-package $1"
fi
if ${test}; then
eval "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/test-package $1"
fi
if ${clean}; then
eval "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/clean-package $1"
fi
}
display_help_message() {
print_error "Usage: $0 [--no-install] [--no-validate] [--no-test] [--no-clean] <package paths or names>"
}
main() {
local packages=() options=() package_path
while [[ $# -gt 0 ]]; do
case "$1" in
--no-install)
options+=("no-install")
;;
--no-validate)
options+=("no-validate")
;;
--no-test)
options+=("no-test")
;;
--no-clean)
options+=("no-clean")
;;
--help)
display_help_message
exit 0
;;
-*)
print_error "Unknown option \"$1\""
exit 1
;;
*)
packages+=("$1")
;;
esac
shift
done
if [[ "${packages[@]}" = "" ]]; then
display_help_message
exit 1
fi
for package in "${packages[@]}"; do
package_path="$(cast_package_argument_to_package_path "${package}")"
exit_on_error "Package \"${package}\" is not found"
build_package "${package_path}" "${options[*]}"
done
}
main "$@"