Static site for builds.kestrelsnest.social: an index page with one card per build, an rsync deploy script modelled on pantry, and the Green Man mask guide with its templates and print files. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GrX9qMoNihcWLX3xoJhabw
41 lines
1.2 KiB
Bash
Executable File
41 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# Deploy the builds site to YunoHost (My Webapp, static).
|
|
# ./deploy push the site
|
|
# ./deploy -n dry run: show what would change, change nothing
|
|
USER=admin
|
|
HOST=social
|
|
DIR=/var/www/my_webapp__3/www
|
|
|
|
case "$DIR" in
|
|
*my_webapp__N/*)
|
|
echo "Set DIR in ./deploy first: replace my_webapp__N with this app's folder under /var/www on the server."
|
|
echo " ssh ${HOST} 'ls -d /var/www/my_webapp*'"
|
|
exit 1 ;;
|
|
esac
|
|
|
|
DRY=""
|
|
[ "$1" = "-n" ] && DRY="--dry-run" && echo "Dry run: nothing will be changed."
|
|
|
|
cd "$(dirname "$0")" || exit 1
|
|
|
|
# Everything in this folder is the site, apart from the project's own files.
|
|
# --delete removes files on the server that no longer exist here.
|
|
rsync -avz --no-t --no-p --delete $DRY \
|
|
--exclude '.git/' \
|
|
--exclude '.gitignore' \
|
|
--exclude '.claude/' \
|
|
--exclude '.DS_Store' \
|
|
--exclude 'deploy' \
|
|
--exclude 'README.md' \
|
|
--exclude 'CLAUDE.md' \
|
|
--exclude '*.swp' --exclude '*.swo' --exclude '*~' \
|
|
./ ${HOST}:${DIR}/
|
|
STATUS=$?
|
|
|
|
# Make everything readable by the web server, whatever the local permissions were.
|
|
if [ $STATUS -eq 0 ] && [ -z "$DRY" ]; then
|
|
ssh ${HOST} "chmod -R a+rX ${DIR}" || STATUS=$?
|
|
fi
|
|
|
|
exit $STATUS
|