#!/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} [] Description: This script will build the Consul binary on the local system. All the requisite tooling must be installed for this to be successful. 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 $?