From f5a7422f3a913067c5cafac253441699dc7793fb Mon Sep 17 00:00:00 2001 From: Julien Oculi Date: Thu, 30 May 2024 17:34:23 +0200 Subject: [PATCH] feat: implement `.env` (secrets) loader --- load_secrets.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 load_secrets.sh diff --git a/load_secrets.sh b/load_secrets.sh new file mode 100644 index 0000000..a4373e6 --- /dev/null +++ b/load_secrets.sh @@ -0,0 +1,23 @@ +# Get all config files +# FILES=$(find . -type f \ # Only files +# -wholename "./*/*" \ # Only in subdir +# -not -wholename "./.git*" \ # Not in .git/ +# -not -name "_*.sh" \ # Not _install.sh or _deploy.sh +# -not -name "README.md") # Not README.md + +FILES=$(find . -type f -wholename "./*/*" -not -wholename "./.git*" -not -name "_*.sh" -not -name "README.md") + +cat .env | grep ".=." > .env.tmp # Clean .env entries +readarray -t SECRETS < .env.tmp # Get all .env entries +rm .env.tmp # Clean tmp file + +for file in $FILES +do + for secret in "${SECRETS[@]}" + do + KEY=$(echo $secret | grep -o "\w\+") + VALUE=$(echo $secret | grep -oP '\w+\s*=\s*\K.*' | tr -d "\r") + + sed -r "s/\{\{\s*$KEY\s*\}\}/$VALUE/g" $file + done +done