Use set -a/+a and docker env file formats
Some checks failed
continuous-integration/drone/pr Build is failing

Closes https://git.autonomic.zone/coop-cloud/abra/issues/40.
This commit is contained in:
Luke Murphy 2020-12-29 17:57:25 +01:00
parent 407744827f
commit 008794f5ff
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
2 changed files with 14 additions and 4 deletions

View File

@ -4,6 +4,7 @@
- `new <app>` becomes `new <type>` ([#48](https://git.autonomic.zone/coop-cloud/abra/issues/48))
- `check` is run on `deploy` now and configurable ([77ba5652b2fe15820f5edfa0f642636f7b8eae7e](https://git.autonomic.zone/coop-cloud/abra/commit/77ba5652b2fe15820f5edfa0f642636f7b8eae7e))
- App configurations are always updated now ([#42](https://git.autonomic.zone/coop-cloud/abra/issues/42))
- We use docker format `.env` files (no "export" syntax) from now now ([#55](https://git.autonomic.zone/coop-cloud/abra/pulls/55))
# abra 0.4.0 (2020-12-24)

17
abra
View File

@ -341,7 +341,7 @@ require_app_latest() {
}
# FIXME 3wc: update or remove
if [ -z "$ABRA_ENV" ] && [ -f .envrc ] && type direnv > /dev/null 2>&1 && ! direnv status | grep -q 'Found RC allowed true'; then
if [ -z "$ABRA_ENV" ] && [ -f .env ] && type direnv > /dev/null 2>&1 && ! direnv status | grep -q 'Found RC allowed true'; then
error "direnv is blocked, run direnv allow"
fi
@ -407,8 +407,11 @@ load_instance() {
}
load_instance_env() {
set -a
# shellcheck disable=SC1090
source "$ENV_FILE"
set +a
if [ -z "$APP" ]; then
error "APP not set, maybe $ENV_FILE is using an old format?"
fi
@ -513,10 +516,14 @@ sub_app_list (){
FILE="${PARTS[-1]}"
SERVER="${PARTS[-2]}"
DOMAIN="${FILE%.env}"
set -a
# shellcheck disable=SC1090
APP="$(source "$ENV_FILE" && echo "$APP")"
# shellcheck disable=SC1090
APP_STACK_NAME="$(source "$ENV_FILE" && echo "$STACK_NAME")"
set +a
if [ -z "$APP_STACK_NAME" ]; then
APP_STACK_NAME="${DOMAIN//./_}"
fi
@ -573,7 +580,7 @@ sub_app_new (){
# FIXME 3wc: offer to user $STACK_$DOMAIN.env name instead
fi
cp "$APP_DIR/.envrc.sample" "$ENV_FILE"
cp "$APP_DIR/.env.sample" "$ENV_FILE"
sed -i "s/$APP\.example\.com/$DOMAIN/g" "$ENV_FILE"
sed -i "s/example\.com/$DOMAIN/g" "$ENV_FILE"
@ -664,8 +671,8 @@ sub_app_check (){
#APP_ENV=$(grep -v '^#' "$ENV_FILE" | sed 's/^.* \([^=]\+\)=.*/\1/' | sort)
APP_ENV=$(grep -v '^#' "$ENV_FILE" | cut -d' ' -f2 | cut -d'=' -f1 | sort)
#STACK_ENV=$(grep -v '^#' "$APP_DIR/.envrc.sample" | sed 's/^.* \([^=]\+\)=.*/\1/' | sort)
STACK_ENV=$(grep -v '^#' "$APP_DIR/.envrc.sample" | cut -d' ' -f2 | cut -d'=' -f1 | sort)
#STACK_ENV=$(grep -v '^#' "$APP_DIR/.env.sample" | sed 's/^.* \([^=]\+\)=.*/\1/' | sort)
STACK_ENV=$(grep -v '^#' "$APP_DIR/.env.sample" | cut -d' ' -f2 | cut -d'=' -f1 | sort)
# Only show "1", items in STACK_ENV which aren't in APP_ENV
MISSING_VARS=$(comm -23 <(echo "$STACK_ENV") <(echo "$APP_ENV"))
@ -1041,8 +1048,10 @@ abra() {
# --env <env>
if [ -n "$abra___env" ]; then
set -a
# shellcheck disable=SC1090
source "$abra___env" || error "Unable to load env from '$abra___env'"
set +a
fi
load_custom_commands