From df9ae7089959adc35935cd8b33a71ec60d94d209 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Wed, 31 Mar 2021 14:56:53 +0200 Subject: [PATCH] Support reading Kayobe environment name from file If using separate branches for each environment, it can be useful to read the environment name from a file committed to each branch. Or, if sharing the same branch for all environments, it can be useful to set the default environment to one with lower impact, e.g. dev or staging. If no --environment option is specified and a .environment file exists at the root of the directory, use its content as KAYOBE_ENVIRONMENT. Change-Id: I22b2b466e47a3b4d96931d754a4de7544f0ada5d (cherry picked from commit 2af2c3a3b5387c577801b165ecd749fe782fddb9) --- kayobe-env | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/kayobe-env b/kayobe-env index 949e99b..c0203c1 100644 --- a/kayobe-env +++ b/kayobe-env @@ -36,6 +36,23 @@ export KOLLA_SOURCE_PATH=${KOLLA_SOURCE_PATH:-${base_path}/src/kolla-ansible} # issues with symlinks on Windows hosts. export KOLLA_VENV_PATH=~/kolla-venv +function check_and_export_env { + # Look for existing Kayobe environments + 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}" + return 0 + else + echo "Unable to find Kayobe environment ${kayobe_env} in ${KAYOBE_CONFIG_PATH}/environments" + return 1 + fi + else + echo "Cannot find environments folder in ${KAYOBE_CONFIG_PATH}" + return 1 + fi +} + function usage { echo "usage: ${BASH_SOURCE[0]:-${(%):-%x}} [--environment ]" return 1 @@ -44,21 +61,14 @@ function usage { if [ "$#" -ge 1 ]; then if [ "$1" = "--environment" -a "$#" -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 - export KAYOBE_ENVIRONMENT="${kayobe_env}" - echo "Using Kayobe environment ${KAYOBE_ENVIRONMENT}" - return 0 - else - echo "Unable to find Kayobe environment ${kayobe_env} in ${KAYOBE_CONFIG_PATH}/environments" - return 1 - fi - else - echo "Cannot find environments folder in ${KAYOBE_CONFIG_PATH}" - return 1 - fi + check_and_export_env else usage fi + return $? +fi + +if [[ -f "$KAYOBE_CONFIG_ROOT/.environment" ]]; then + kayobe_env=$(cat "$KAYOBE_CONFIG_ROOT/.environment") + check_and_export_env fi