aBER0724 commited on
Commit
5f93e9f
·
verified ·
1 Parent(s): ff8769e

Update sync_data.sh

Browse files
Files changed (1) hide show
  1. sync_data.sh +43 -16
sync_data.sh CHANGED
@@ -142,10 +142,14 @@ if [ "$RESTORE_SOURCE" = "webdav" ]; then
142
  # 仅从 WebDAV 恢复
143
  restore_from_webdav
144
  elif [ "$RESTORE_SOURCE" = "github" ] || [ "$RESTORE_SOURCE" = "auto" ]; then
145
- # 从 GitHub 恢复(config 和 tools 目录)
146
  GITHUB_RESTORED=0
147
 
148
- echo " GitHub 恢复配置(config tools 目录)..."
 
 
 
 
149
 
150
  # 检查并恢复 config 目录
151
  if [ -d "$GITHUB_DATA_DIR/config" ] && [ "$(ls -A $GITHUB_DATA_DIR/config 2>/dev/null)" ]; then
@@ -158,21 +162,28 @@ elif [ "$RESTORE_SOURCE" = "github" ] || [ "$RESTORE_SOURCE" = "auto" ]; then
158
  echo "GitHub 仓库中没有 config 目录或目录为空"
159
  fi
160
 
161
- # 检查并恢复 tools 目录
162
- if [ -d "$GITHUB_DATA_DIR/tools" ] && [ "$(ls -A $GITHUB_DATA_DIR/tools 2>/dev/null)" ]; then
163
- echo " GitHub 恢复 tools 目录..."
164
- mkdir -p /tools
165
- cp -r "$GITHUB_DATA_DIR/tools"/* /tools/
166
- echo "GitHub: tools 目录恢复成功"
167
- GITHUB_RESTORED=1
 
 
 
 
168
  else
169
- echo "GitHub 仓库中没有 tools 目录或目录为空"
170
  fi
171
 
172
  # 如果是 auto 模式,GitHub 恢复后,还可以从 WebDAV 补充恢复
173
  if [ "$RESTORE_SOURCE" = "auto" ] && [ "$GITHUB_RESTORED" = "0" ]; then
174
  echo "GitHub 中没有找到任何配置,尝试从 WebDAV 恢复..."
175
  restore_from_webdav || echo "WebDAV 恢复失败,将在同步时重新备份"
 
 
 
176
  elif [ "$GITHUB_RESTORED" = "1" ]; then
177
  echo "从 GitHub 恢复配置完成"
178
  else
@@ -200,11 +211,19 @@ sync_data() {
200
  git checkout main || git checkout master
201
 
202
  # 复制最新的配置文件
203
- echo "检查配置文件变化(GitHub 备份 config 和 tools 目录)..."
 
 
 
 
 
 
204
 
205
  # 创建仓库中的目录
206
  mkdir -p ./config
207
- mkdir -p ./tools
 
 
208
 
209
  # 同步 config 目录到 GitHub
210
  if [ -d "/mcp-proxy-server/config" ]; then
@@ -233,7 +252,7 @@ sync_data() {
233
  fi
234
 
235
  # 同步 tools 目录到 GitHub(处理多个MCP仓库)
236
- if [ -d "/tools" ] && [ "$(ls -A /tools 2>/dev/null)" ]; then
237
  # 清空目标目录
238
  rm -rf ./tools/*
239
 
@@ -296,6 +315,8 @@ sync_data() {
296
  if [ "$PROCESSED_COUNT" -gt 0 ]; then
297
  echo "总计处理 $PROCESSED_COUNT 个 MCP 工具"
298
  fi
 
 
299
  fi
300
 
301
  # 检查是否有变化
@@ -332,9 +353,15 @@ sync_data() {
332
 
333
  # GitHub 备份(仅当 config 有变化时)
334
  if [ "$CONFIG_CHANGED" = "1" ]; then
335
- echo " GitHub 备份 (config + tools)"
336
- git add config/ tools/
337
- git commit -m "Auto sync config and tools $(date '+%Y-%m-%d %H:%M:%S')"
 
 
 
 
 
 
338
  git push origin HEAD >/dev/null 2>&1 && echo " ✓ ��送成功" || echo " ✗ 推送失败"
339
  fi
340
 
 
142
  # 仅从 WebDAV 恢复
143
  restore_from_webdav
144
  elif [ "$RESTORE_SOURCE" = "github" ] || [ "$RESTORE_SOURCE" = "auto" ]; then
145
+ # 从 GitHub 恢复(根据环境变量决定是否包含tools
146
  GITHUB_RESTORED=0
147
 
148
+ if [ "$GITHUB_BACKUP_TOOLS" = "true" ]; then
149
+ echo "从 GitHub 恢复配置(config 和 tools 目录)..."
150
+ else
151
+ echo "从 GitHub 恢复配置(仅 config 目录)..."
152
+ fi
153
 
154
  # 检查并恢复 config 目录
155
  if [ -d "$GITHUB_DATA_DIR/config" ] && [ "$(ls -A $GITHUB_DATA_DIR/config 2>/dev/null)" ]; then
 
162
  echo "GitHub 仓库中没有 config 目录或目录为空"
163
  fi
164
 
165
+ # 检查并恢复 tools 目录(仅当环境变量允许时)
166
+ if [ "$GITHUB_BACKUP_TOOLS" = "true" ]; then
167
+ if [ -d "$GITHUB_DATA_DIR/tools" ] && [ "$(ls -A $GITHUB_DATA_DIR/tools 2>/dev/null)" ]; then
168
+ echo "从 GitHub 恢复 tools 目录..."
169
+ mkdir -p /tools
170
+ cp -r "$GITHUB_DATA_DIR/tools"/* /tools/
171
+ echo "GitHub: tools 目录恢复成功"
172
+ GITHUB_RESTORED=1
173
+ else
174
+ echo "GitHub 仓库中没有 tools 目录或目录为空"
175
+ fi
176
  else
177
+ echo "跳过 tools 目录恢复(由 GITHUB_BACKUP_TOOLS=false 控制)"
178
  fi
179
 
180
  # 如果是 auto 模式,GitHub 恢复后,还可以从 WebDAV 补充恢复
181
  if [ "$RESTORE_SOURCE" = "auto" ] && [ "$GITHUB_RESTORED" = "0" ]; then
182
  echo "GitHub 中没有找到任何配置,尝试从 WebDAV 恢复..."
183
  restore_from_webdav || echo "WebDAV 恢复失败,将在同步时重新备份"
184
+ elif [ "$RESTORE_SOURCE" = "auto" ] && [ "$GITHUB_BACKUP_TOOLS" = "false" ]; then
185
+ echo "从 WebDAV 补充恢复 tools 目录..."
186
+ restore_from_webdav || echo "WebDAV 恢复失败"
187
  elif [ "$GITHUB_RESTORED" = "1" ]; then
188
  echo "从 GitHub 恢复配置完成"
189
  else
 
211
  git checkout main || git checkout master
212
 
213
  # 复制最新的配置文件
214
+ GITHUB_BACKUP_TOOLS=${GITHUB_BACKUP_TOOLS:-true}
215
+
216
+ if [ "$GITHUB_BACKUP_TOOLS" = "true" ]; then
217
+ echo "检查配置文件变化(GitHub 备份 config 和 tools 目录)..."
218
+ else
219
+ echo "检查配置文件变化(GitHub 仅备份 config 目录)..."
220
+ fi
221
 
222
  # 创建仓库中的目录
223
  mkdir -p ./config
224
+ if [ "$GITHUB_BACKUP_TOOLS" = "true" ]; then
225
+ mkdir -p ./tools
226
+ fi
227
 
228
  # 同步 config 目录到 GitHub
229
  if [ -d "/mcp-proxy-server/config" ]; then
 
252
  fi
253
 
254
  # 同步 tools 目录到 GitHub(处理多个MCP仓库)
255
+ if [ "$GITHUB_BACKUP_TOOLS" = "true" ] && [ -d "/tools" ] && [ "$(ls -A /tools 2>/dev/null)" ]; then
256
  # 清空目标目录
257
  rm -rf ./tools/*
258
 
 
315
  if [ "$PROCESSED_COUNT" -gt 0 ]; then
316
  echo "总计处理 $PROCESSED_COUNT 个 MCP 工具"
317
  fi
318
+ elif [ "$GITHUB_BACKUP_TOOLS" = "false" ]; then
319
+ echo "跳过 tools 目录(由 GITHUB_BACKUP_TOOLS=false 控制)"
320
  fi
321
 
322
  # 检查是否有变化
 
353
 
354
  # GitHub 备份(仅当 config 有变化时)
355
  if [ "$CONFIG_CHANGED" = "1" ]; then
356
+ if [ "$GITHUB_BACKUP_TOOLS" = "true" ]; then
357
+ echo "→ GitHub 备份 (config + tools)"
358
+ git add config/ tools/
359
+ git commit -m "Auto sync config and tools $(date '+%Y-%m-%d %H:%M:%S')"
360
+ else
361
+ echo "→ GitHub 备份 (config only)"
362
+ git add config/
363
+ git commit -m "Auto sync config $(date '+%Y-%m-%d %H:%M:%S')"
364
+ fi
365
  git push origin HEAD >/dev/null 2>&1 && echo " ✓ ��送成功" || echo " ✗ 推送失败"
366
  fi
367