fix: re-exec updated script after git pull so new logic runs; bump to 1.2.8
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -6,10 +6,12 @@ REMOTE="origin"
|
||||
BRANCH="main"
|
||||
SERVICE="clawd.service"
|
||||
NO_RESTART=false
|
||||
NO_PULL=false
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--no-restart) NO_RESTART=true ;;
|
||||
--no-pull) NO_PULL=true ;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -23,32 +25,43 @@ fi
|
||||
|
||||
cd "$REPO_DIR"
|
||||
|
||||
# 如果 remote 仍指向 GitHub,迁移到 git.cutos.ai
|
||||
CURRENT_REMOTE=$(git remote get-url "$REMOTE" 2>/dev/null || echo "")
|
||||
if echo "$CURRENT_REMOTE" | grep -q "github.com"; then
|
||||
echo "==> Migrating remote from GitHub to git.cutos.ai ..."
|
||||
git remote set-url "$REMOTE" https://git.cutos.ai/claw-daemon/clawd.git
|
||||
if [ "$NO_PULL" = false ]; then
|
||||
# 如果 remote 仍指向 GitHub,迁移到 git.cutos.ai
|
||||
CURRENT_REMOTE=$(git remote get-url "$REMOTE" 2>/dev/null || echo "")
|
||||
if echo "$CURRENT_REMOTE" | grep -q "github.com"; then
|
||||
echo "==> Migrating remote from GitHub to git.cutos.ai ..."
|
||||
git remote set-url "$REMOTE" https://git.cutos.ai/claw-daemon/clawd.git
|
||||
fi
|
||||
|
||||
echo "==> Fetching latest from $REMOTE/$BRANCH ..."
|
||||
git fetch "$REMOTE"
|
||||
|
||||
LOCAL_COMMIT="$(git rev-parse HEAD)"
|
||||
REMOTE_COMMIT="$(git rev-parse "$REMOTE/$BRANCH")"
|
||||
|
||||
echo "==> Local : $LOCAL_COMMIT"
|
||||
echo "==> Remote: $REMOTE_COMMIT"
|
||||
|
||||
if [ "$LOCAL_COMMIT" = "$REMOTE_COMMIT" ]; then
|
||||
echo "==> Already up to date. Skip upgrade."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "==> Updating working tree to $REMOTE/$BRANCH ..."
|
||||
git reset --hard "$REMOTE/$BRANCH"
|
||||
git clean -fd
|
||||
|
||||
# Re-exec the freshly pulled version of this script so all new logic runs
|
||||
echo "==> Re-executing updated script ..."
|
||||
exec bash "$REPO_DIR/tools/update-clawd.sh" --no-pull "$@"
|
||||
fi
|
||||
|
||||
echo "==> Fetching latest from $REMOTE/$BRANCH ..."
|
||||
git fetch "$REMOTE"
|
||||
# ── 以下由新版脚本执行(--no-pull 阶段)────────────────────────────────────────
|
||||
|
||||
LOCAL_COMMIT="$(git rev-parse HEAD)"
|
||||
REMOTE_COMMIT="$(git rev-parse "$REMOTE/$BRANCH")"
|
||||
REMOTE_COMMIT="$(git rev-parse "$REMOTE/$BRANCH" 2>/dev/null || echo "$LOCAL_COMMIT")"
|
||||
|
||||
echo "==> Local : $LOCAL_COMMIT"
|
||||
echo "==> Remote: $REMOTE_COMMIT"
|
||||
|
||||
if [ "$LOCAL_COMMIT" = "$REMOTE_COMMIT" ]; then
|
||||
echo "==> Already up to date. Skip upgrade."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "==> Updating working tree to $REMOTE/$BRANCH ..."
|
||||
git reset --hard "$REMOTE/$BRANCH"
|
||||
git clean -fd
|
||||
|
||||
if git diff --name-only "$LOCAL_COMMIT" "$REMOTE_COMMIT" | grep -Eq '(^|/)(package.json|package-lock.json)$'; then
|
||||
if git diff --name-only HEAD~1 HEAD 2>/dev/null | grep -Eq '(^|/)(package.json|package-lock.json)$'; then
|
||||
echo "==> Dependency files changed, running npm install ..."
|
||||
npm install --prefix "$REPO_DIR"
|
||||
else
|
||||
@@ -58,11 +71,6 @@ fi
|
||||
echo "==> Current commit:"
|
||||
git log --oneline -1
|
||||
|
||||
if [ "$NO_RESTART" = true ]; then
|
||||
echo "==> --no-restart: skip systemctl restart (caller handles restart)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
NODE_BIN=$(command -v node)
|
||||
INSTALL_DIR="/opt/clawd"
|
||||
CONFIG_DIR="/etc/clawd"
|
||||
@@ -113,6 +121,11 @@ EOF
|
||||
systemctl daemon-reload
|
||||
echo "==> daemon-reload done"
|
||||
|
||||
if [ "$NO_RESTART" = true ]; then
|
||||
echo "==> --no-restart: skip systemctl restart (caller handles restart)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "==> Restarting service: $SERVICE"
|
||||
systemctl restart "$SERVICE"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user