102 lines
2.3 KiB
Bash
102 lines
2.3 KiB
Bash
|
#!/bin/bash
|
||
|
SCRIPT_NAME="$(basename ${BASH_SOURCE[0]})"
|
||
|
pushd $(dirname ${BASH_SOURCE[0]}) > /dev/null
|
||
|
SCRIPT_DIR=$(pwd)
|
||
|
pushd ../.. > /dev/null
|
||
|
SOURCE_DIR=$(pwd)
|
||
|
popd > /dev/null
|
||
|
pushd ../functions > /dev/null
|
||
|
FN_DIR=$(pwd)
|
||
|
popd > /dev/null
|
||
|
popd > /dev/null
|
||
|
|
||
|
source "${SCRIPT_DIR}/functions.sh"
|
||
|
|
||
|
function usage {
|
||
|
cat <<-EOF
|
||
|
Usage: ${SCRIPT_NAME} (consul|ui|ui-legacy|static-assets) [<options ...>]
|
||
|
|
||
|
Options:
|
||
|
|
||
|
-s | --source DIR Path to source to build.
|
||
|
Defaults to "${SOURCE_DIR}"
|
||
|
|
||
|
-o | --os OSES Space separated string of OS
|
||
|
platforms to build.
|
||
|
|
||
|
-a | --arch ARCH Space separated string of
|
||
|
architectures to build.
|
||
|
|
||
|
-h | --help Print this help text.
|
||
|
EOF
|
||
|
}
|
||
|
|
||
|
function err_usage {
|
||
|
err "$1"
|
||
|
err ""
|
||
|
err "$(usage)"
|
||
|
}
|
||
|
|
||
|
function main {
|
||
|
declare sdir="${SOURCE_DIR}"
|
||
|
declare build_os=""
|
||
|
declare build_arch=""
|
||
|
|
||
|
|
||
|
while test $# -gt 0
|
||
|
do
|
||
|
case "$1" in
|
||
|
-h | --help )
|
||
|
usage
|
||
|
return 0
|
||
|
;;
|
||
|
-s | --source )
|
||
|
if test -z "$2"
|
||
|
then
|
||
|
err_usage "ERROR: option -s/--source requires an argument"
|
||
|
return 1
|
||
|
fi
|
||
|
|
||
|
if ! test -d "$2"
|
||
|
then
|
||
|
err_usage "ERROR: '$2' is not a directory and not suitable for the value of -s/--source"
|
||
|
return 1
|
||
|
fi
|
||
|
|
||
|
sdir="$2"
|
||
|
shift 2
|
||
|
;;
|
||
|
-o | --os )
|
||
|
if test -z "$2"
|
||
|
then
|
||
|
err_usage "ERROR: option -o/--os requires an argument"
|
||
|
return 1
|
||
|
fi
|
||
|
|
||
|
build_os="$2"
|
||
|
shift 2
|
||
|
;;
|
||
|
-a | --arch )
|
||
|
if test -z "$2"
|
||
|
then
|
||
|
err_usage "ERROR: option -a/--arch requires an argument"
|
||
|
return 1
|
||
|
fi
|
||
|
|
||
|
build_arch="$2"
|
||
|
shift 2
|
||
|
;;
|
||
|
* )
|
||
|
err_usage "ERROR: Unknown argument: '$1'"
|
||
|
return 1
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
build_consul_local "${sdir}" "${build_os}" "${build_arch}" || return 1
|
||
|
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
main $@
|
||
|
exit $?
|