chore(deploy): add simple build+rsync deploy script

Wraps the build-and-push routine (zola build → rsync to mycelium:~/public/praxis/)
with --dry-run and --no-build flags. Anchored to repo root via $(dirname).
This commit is contained in:
2026-05-21 12:47:23 +02:00
parent b5ce1477ed
commit 4251b1f40b
+45
View File
@@ -0,0 +1,45 @@
#!/usr/bin/env bash
# Build the Zola site and sync `public/` to the Variomedia staging host.
#
# Usage:
# scripts/deploy.sh # build + deploy
# scripts/deploy.sh --dry-run # show what rsync would do, transfer nothing
# scripts/deploy.sh --no-build # skip `zola build` (deploy existing public/)
set -euo pipefail
REMOTE="mycelium:~/public/praxis/"
LOCAL="public/"
# Run from the repo root so relative paths are stable.
cd "$(dirname "$0")/.."
DRY_RUN=""
DO_BUILD=1
for arg in "$@"; do
case "$arg" in
--dry-run) DRY_RUN="--dry-run" ;;
--no-build) DO_BUILD=0 ;;
-h|--help)
sed -n '2,8p' "$0"
exit 0 ;;
*)
echo "unknown flag: $arg" >&2
exit 2 ;;
esac
done
if [[ "$DO_BUILD" -eq 1 ]]; then
echo "==> zola build"
zola build
fi
if [[ ! -d "$LOCAL" ]]; then
echo "error: $LOCAL does not exist — run without --no-build first" >&2
exit 1
fi
echo "==> rsync $LOCAL -> $REMOTE${DRY_RUN:+ (dry-run)}"
rsync -avz --delete $DRY_RUN "$LOCAL" "$REMOTE"
echo "==> done"