|
@@ -0,0 +1,59 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+# 检查是否以root权限运行
|
|
|
+if [ "$EUID" -ne 0 ]; then
|
|
|
+ echo "错误:请以root权限运行此脚本"
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+# 重新挂载/usr为可写模式
|
|
|
+echo "重新挂载/usr为读写模式..."
|
|
|
+sudo mount -o remount,rw /usr
|
|
|
+
|
|
|
+# 检查挂载是否成功
|
|
|
+if [ $? -ne 0 ]; then
|
|
|
+ echo "错误:无法重新挂载/usr为读写模式"
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+# 定义文件路径和目标替换内容
|
|
|
+FILE_PATH="/usr/lib/python3/dist-packages/middlewared/plugins/catalog/utils.py"
|
|
|
+OLD_URL="https://github.com/truenas/apps"
|
|
|
+NEW_URL="https://git.seembox.com/root/apps"
|
|
|
+
|
|
|
+# 检查文件是否存在
|
|
|
+if [ ! -f "$FILE_PATH" ]; then
|
|
|
+ echo "错误:文件 $FILE_PATH 不存在"
|
|
|
+ sudo mount -o remount,ro /usr 2>/dev/null
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+# 备份原始文件
|
|
|
+BACKUP_FILE="${FILE_PATH}.backup.$(date +%Y%m%d_%H%M%S)"
|
|
|
+echo "创建备份文件: $BACKUP_FILE"
|
|
|
+cp "$FILE_PATH" "$BACKUP_FILE"
|
|
|
+
|
|
|
+# 执行替换操作
|
|
|
+echo "正在替换文件内容..."
|
|
|
+sed -i "s|${OLD_URL}|${NEW_URL}|g" "$FILE_PATH"
|
|
|
+
|
|
|
+# 检查替换是否成功
|
|
|
+if [ $? -eq 0 ]; then
|
|
|
+ echo "替换成功完成!"
|
|
|
+ echo "已将所有的 '${OLD_URL}' 替换为 '${NEW_URL}'"
|
|
|
+
|
|
|
+ # 验证替换结果
|
|
|
+ echo "验证替换结果:"
|
|
|
+ grep -n "$NEW_URL" "$FILE_PATH"
|
|
|
+
|
|
|
+ # 重新挂载为只读模式(可选)
|
|
|
+ # sudo mount -o remount,ro /usr
|
|
|
+else
|
|
|
+ echo "错误:替换操作失败"
|
|
|
+ # 恢复备份
|
|
|
+ mv "$BACKUP_FILE" "$FILE_PATH"
|
|
|
+ sudo mount -o remount,ro /usr 2>/dev/null
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+echo "操作完成!"
|