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