hy-app-monitor/testbox/scripts/merge-env-defaults.sh

33 lines
756 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
env_file="${1:-.env}"
defaults_file="${2:-.env.example}"
if [ ! -f "$env_file" ] || [ ! -f "$defaults_file" ]; then
exit 0
fi
added=0
while IFS= read -r line || [ -n "$line" ]; do
trimmed="${line#"${line%%[![:space:]]*}"}"
if [ -z "$trimmed" ] || [[ "$trimmed" == \#* ]] || [[ "$trimmed" != *=* ]]; then
continue
fi
key="${trimmed%%=*}"
if ! grep -qE "^${key}=" "$env_file"; then
if [ "$added" -eq 0 ]; then
{
echo
echo "# Added from .env.example on $(date +%F)"
} >> "$env_file"
fi
echo "$trimmed" >> "$env_file"
added=$((added + 1))
fi
done < "$defaults_file"
if [ "$added" -gt 0 ]; then
echo "merged $added missing env defaults into $env_file"
fi