36 lines
1.3 KiB
Bash
36 lines
1.3 KiB
Bash
#!/usr/bin/env sh
|
|
# ================================================================================
|
|
# File: env.sh
|
|
# Description: Replaces environment variables in asset files.
|
|
# Usage: Run this script in your terminal, ensuring APP_PREFIX and ASSET_DIRS are set.
|
|
# ================================================================================
|
|
|
|
# Set the exit flag to exit immediately if any command fails
|
|
set -e
|
|
|
|
# Check if APP_PREFIX is set
|
|
: "${APP_PREFIX:?APP_PREFIX must be set (e.g. APP_PREFIX='APP_PREFIX_')}"
|
|
|
|
# Check if ASSET_DIRS is set
|
|
: "${ASSET_DIR:?Must set ASSET_DIR to one path}"
|
|
|
|
# Check if the directory exists
|
|
if [ ! -d "$ASSET_DIR" ]; then
|
|
# If not, display a warning message and skip to the next iteration
|
|
echo "Warning: directory '$ASSET_DIR' not found, skipping."
|
|
continue
|
|
fi
|
|
|
|
# Display the current directory being scanned
|
|
echo "Scanning directory: $ASSET_DIR"
|
|
|
|
# Iterate through each environment variable that starts with APP_PREFIX
|
|
env | grep "^${APP_PREFIX}" | while IFS='=' read -r key value; do
|
|
# Display the variable being replaced
|
|
echo " • Replacing ${key} → ${value}"
|
|
|
|
# Use find and sed to replace the variable in all files within the directory
|
|
find "$ASSET_DIR" -type f \
|
|
-exec sed -i "s|${key}|${value}|g" {} +
|
|
done
|