From a639dc6e41ce101ae8229b62fa52c97deb1952be Mon Sep 17 00:00:00 2001 From: Mischa Date: Sat, 4 Jul 2026 16:41:25 +0200 Subject: [PATCH] build: fix remote-upgrade-grav; add remote plugin-update, git-sync toggle, content-status targets Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Np4cMQLF77i664CAQXySzU --- Makefile | 18 +++++++++++++++--- scripts/git-sync-toggle.sh | 20 ++++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100755 scripts/git-sync-toggle.sh diff --git a/Makefile b/Makefile index d97c29a..2d1c53d 100644 --- a/Makefile +++ b/Makefile @@ -20,8 +20,9 @@ SITE_CONFIG_DIR ?= $(REMOTE_HOME)/site-config # make remote-install-prod → runs remote-install with ENV=prod # Calling a bare remote target (no ENV) fails via guard-env. REMOTE_TARGETS := remote-env-setup remote-env-remove remote-wipe remote-install \ - remote-fetch remote-fetch-content remote-install-plugins remote-upgrade-grav \ - remote-clean remote-maintenance-on remote-maintenance-off + remote-fetch remote-fetch-content remote-install-plugins remote-update-plugins \ + remote-upgrade-grav remote-git-sync-disable remote-git-sync-enable \ + remote-content-status remote-clean remote-maintenance-on remote-maintenance-off ENVS := test prod guard-env: @@ -144,9 +145,20 @@ remote-fetch-content: guard-env remote-install-plugins: guard-env $(SSH) "cd $(WEBROOT) && php bin/gpm install $(shell cat plugins.txt | tr '\n' ' ') -y" +remote-update-plugins: guard-env + $(SSH) "cd $(WEBROOT) && php bin/gpm update -y && php bin/grav cache" remote-upgrade-grav: guard-env - $(SSH) "cd $(WEBROOT) && php bin/grav upgrade" + $(SSH) "cd $(WEBROOT) && php bin/gpm self-upgrade -y && php bin/grav cache" + +remote-git-sync-disable: guard-env + $(SSH) "bash -s -- '$(WEBROOT)/user/config/plugins/git-sync.yaml' false" < scripts/git-sync-toggle.sh + +remote-git-sync-enable: guard-env + $(SSH) "bash -s -- '$(WEBROOT)/user/config/plugins/git-sync.yaml' true" < scripts/git-sync-toggle.sh + +remote-content-status: guard-env + $(SSH) "cd $(WEBROOT)/user && git status --short && echo '--- config diff ---' && git diff -- config/" remote-clean: guard-env $(SSH) "cd $(WEBROOT) && php bin/grav clearcache" diff --git a/scripts/git-sync-toggle.sh b/scripts/git-sync-toggle.sh new file mode 100755 index 0000000..3f0268c --- /dev/null +++ b/scripts/git-sync-toggle.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -e + +FILE="$1" +STATE="$2" +: "${FILE:?usage: git-sync-toggle.sh }" +: "${STATE:?usage: git-sync-toggle.sh }" + +if [ ! -f "$FILE" ]; then + echo "ERROR: $FILE not found — is git-sync installed on this server?" >&2 + exit 1 +fi + +if grep -qE '^enabled:' "$FILE"; then + sed -i -E "s/^enabled:.*/enabled: ${STATE}/" "$FILE" +else + printf 'enabled: %s\n' "$STATE" | cat - "$FILE" > "$FILE.tmp" && mv "$FILE.tmp" "$FILE" +fi + +echo "git-sync now: $(grep -E '^enabled:' "$FILE")"