Stop accessing unbound variables
The kayobe-env script would try accessing $1 which is an unbound variable if no argument is passed. This fails when `set -u` is set. Also refactor usage output into a function. As a side effect, a missing argument to --environment now causes the script to properly exit with an error. Change-Id: I9a44578196086ec24de80b992fed385826778feb
This commit is contained in:
21
kayobe-env
21
kayobe-env
@@ -33,15 +33,17 @@ base_path=$(realpath $KAYOBE_CONFIG_ROOT/../../)
|
||||
export KOLLA_SOURCE_PATH=${KOLLA_SOURCE_PATH:-${base_path}/src/kolla-ansible}
|
||||
export KOLLA_VENV_PATH=${KOLLA_VENV_PATH:-${base_path}/venvs/kolla-ansible}
|
||||
|
||||
if [ "$1" = "--environment" ]; then
|
||||
if [ "$#" -ne 2 ]; then
|
||||
echo "usage: ${BASH_SOURCE[0]:-${(%):-%x}} [--environment <env-name>]"
|
||||
else
|
||||
kayobe_env="$2"
|
||||
function usage {
|
||||
echo "usage: ${BASH_SOURCE[0]:-${(%):-%x}} [--environment <env-name>]"
|
||||
return 1
|
||||
}
|
||||
|
||||
if [[ "$#" -ge 1 ]]; then
|
||||
if [[ "$1" = "--environment" && "$#" -eq 2 ]]; then
|
||||
kayobe_env="$2"
|
||||
# Look for existing Kayobe environments
|
||||
if [ -d "${KAYOBE_CONFIG_PATH}/environments" ]; then
|
||||
if [ -d "${KAYOBE_CONFIG_PATH}/environments/${kayobe_env}" ]; then
|
||||
if [[ -d "${KAYOBE_CONFIG_PATH}/environments" ]]; then
|
||||
if [[ -d "${KAYOBE_CONFIG_PATH}/environments/${kayobe_env}" ]]; then
|
||||
export KAYOBE_ENVIRONMENT="${kayobe_env}"
|
||||
echo "Using Kayobe environment ${KAYOBE_ENVIRONMENT}"
|
||||
else
|
||||
@@ -52,8 +54,7 @@ if [ "$1" = "--environment" ]; then
|
||||
echo "Cannot find environments folder in ${KAYOBE_CONFIG_PATH}"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
usage
|
||||
fi
|
||||
elif [ "$#" -ne 0 ]; then
|
||||
echo "usage: ${BASH_SOURCE[0]:-${(%):-%x}} [--environment <env-name>]"
|
||||
return 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user