57 lines
1.4 KiB
Bash
Executable File
57 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 确保在脚本所在目录执行
|
|
cd "$(dirname "$0")"
|
|
SCRIPT_DIR="$(pwd)"
|
|
echo "当前工作目录: $SCRIPT_DIR"
|
|
|
|
# 获取项目根目录
|
|
ROOT_DIR="$(cd ../.. && pwd)"
|
|
echo "项目根目录: $ROOT_DIR"
|
|
|
|
# 加载环境变量
|
|
source "$ROOT_DIR/environment.sh"
|
|
|
|
echo "开始替换Gateway配置文件中的环境变量..."
|
|
|
|
# 定义源配置文件和目标目录
|
|
SOURCE_FILE="$SCRIPT_DIR/application.yml"
|
|
TEMP_DIR="$SCRIPT_DIR/temp"
|
|
TARGET_FILE="$TEMP_DIR/application.yml"
|
|
|
|
# 检查源配置文件是否存在
|
|
if [ ! -f "$SOURCE_FILE" ]; then
|
|
echo "错误: 配置文件 $SOURCE_FILE 不存在!"
|
|
exit 1
|
|
fi
|
|
|
|
# 创建临时目录
|
|
rm -rf "$TEMP_DIR"
|
|
mkdir -p "$TEMP_DIR"
|
|
|
|
echo "处理文件: application.yml"
|
|
|
|
# 读取原始文件内容
|
|
content=$(cat "$SOURCE_FILE")
|
|
|
|
# 获取environment.sh中所有环境变量
|
|
env_vars=$(grep -E "^export [A-Z_]+" "$ROOT_DIR/environment.sh" | sed 's/export //')
|
|
|
|
# 逐个替换环境变量
|
|
for var in $env_vars; do
|
|
var_name=$(echo $var | cut -d= -f1)
|
|
var_value=${!var_name}
|
|
if [ ! -z "$var_value" ]; then
|
|
# 使用简单的变量替换方法
|
|
pattern="\\\${$var_name}"
|
|
echo " 替换变量: ${pattern} -> $var_value"
|
|
content=$(echo "$content" | sed "s|${pattern}|$var_value|g")
|
|
fi
|
|
done
|
|
|
|
# 写入处理后的内容到目标文件
|
|
echo "$content" > "$TARGET_FILE"
|
|
|
|
echo "环境变量替换完成! 替换后的文件位于 $TARGET_FILE"
|
|
echo "此文件将在启动Gateway容器时使用"
|