refactor(h-hosts-docker.sh): 优化配置文件备份和引用
- 将备份文件名存储在变量中,避免重复生成 - 使用变量引用备份文件,提高代码可读性和维护性 - 优化 echo 输出,直接使用变量引用备份文件名
This commit is contained in:
@@ -51,8 +51,9 @@ if [ ! -f "$DAEMON_FILE" ] || [ ! -s "$DAEMON_FILE" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 2. 备份当前配置文件
|
# 2. 备份当前配置文件
|
||||||
cp "$DAEMON_FILE" "$DAEMON_FILE.bak-$(date +%Y%m%d_%H%M%S)"
|
BACKUP_FILE="$DAEMON_FILE.bak-$(date +%Y%m%d_%H%M%S)"
|
||||||
echo "📄 已将当前配置备份到 '$DAEMON_FILE.bak-$(date +%Y%m%d_%H%M%S)'"
|
cp "$DAEMON_FILE" "$BACKUP_FILE"
|
||||||
|
echo "📄 已将当前配置备份到 '$BACKUP_FILE'"
|
||||||
|
|
||||||
# 3. 将所有命令行参数转换为 jq 可以使用的 JSON 数组
|
# 3. 将所有命令行参数转换为 jq 可以使用的 JSON 数组
|
||||||
# 例如: "host1:ip1" "host2:ip2" -> '["host1:ip1", "host2:ip2"]'
|
# 例如: "host1:ip1" "host2:ip2" -> '["host1:ip1", "host2:ip2"]'
|
||||||
@@ -67,14 +68,14 @@ hosts_to_add_json=$(jq -n '$ARGS.positional' --args "$@")
|
|||||||
updated_json=$(jq \
|
updated_json=$(jq \
|
||||||
--argjson hosts_to_add "$hosts_to_add_json" \
|
--argjson hosts_to_add "$hosts_to_add_json" \
|
||||||
'.add_host = ((.add_host // []) + $hosts_to_add | unique | del(select(.==null)))' \
|
'.add_host = ((.add_host // []) + $hosts_to_add | unique | del(select(.==null)))' \
|
||||||
"$DAEMON_FILE.bak")
|
"$BACKUP_FILE")
|
||||||
|
|
||||||
# 5. 将格式化后的 JSON 写回主文件
|
# 5. 将格式化后的 JSON 写回主文件
|
||||||
echo "$updated_json" > "$DAEMON_FILE"
|
echo "$updated_json" > "$DAEMON_FILE"
|
||||||
|
|
||||||
# 6. 显示修改前后的差异
|
# 6. 显示修改前后的差异
|
||||||
echo "🔄 检查文件变更:"
|
echo "🔄 检查文件变更:"
|
||||||
diff -u "$DAEMON_FILE.bak" "$DAEMON_FILE"
|
diff -u "$BACKUP_FILE" "$DAEMON_FILE"
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "✅ 配置未发生变化,所有条目均已存在。"
|
echo "✅ 配置未发生变化,所有条目均已存在。"
|
||||||
|
Reference in New Issue
Block a user