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")"