forked from cohabit/server_config
feat: implement .env
(secrets) loader
This commit is contained in:
parent
f587a7f011
commit
528cd9d19d
|
@ -1,3 +1,8 @@
|
||||||
|
# Overwrite files with secrets from `.env`
|
||||||
|
echo "[server_config] > Writting secrets to source files"
|
||||||
|
source ./load_secrets.sh
|
||||||
|
|
||||||
|
# Deploy services
|
||||||
APPS=$@
|
APPS=$@
|
||||||
|
|
||||||
if [[ $# -eq 1 ]]; then
|
if [[ $# -eq 1 ]]; then
|
||||||
|
|
23
load_secrets.sh
Normal file
23
load_secrets.sh
Normal file
|
@ -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
|
Loading…
Reference in a new issue