44 lines
1.8 KiB
Bash
Executable file
44 lines
1.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# deploy-monitoring-sites.sh — rsync generated HTML to DEPLOY_WWW_ROOT on koopa.
|
|
# Does NOT reload Caddy (needs root — see ROOT-ON-KOOPA.md).
|
|
set -uo pipefail
|
|
|
|
ROOT=$(cd "$(dirname "$0")" && pwd)
|
|
SETTINGS="${SITE_GEN_SETTINGS:-$ROOT/settings.conf}"
|
|
[ -f "$SETTINGS" ] || SETTINGS="$ROOT/settings.conf.example"
|
|
# shellcheck disable=SC1090
|
|
set -a
|
|
source <(grep -v '^\s*#' "$SETTINGS" | grep -v '^\s*$' | sed 's/\r$//')
|
|
set +a
|
|
|
|
WORK_ROOT="${WORK_ROOT:-/tmp/taler-monitoring-sites-work}"
|
|
HTML_DIR="$WORK_ROOT/html"
|
|
DEPLOY_SSH="${DEPLOY_SSH:-koopa-external}"
|
|
DEPLOY_WWW_ROOT="${DEPLOY_WWW_ROOT:-/var/www/monitoring-sites}"
|
|
|
|
if [ ! -d "$HTML_DIR" ]; then
|
|
echo "no HTML_DIR $HTML_DIR — run generate-monitoring-sites.sh first" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "deploy $HTML_DIR → ${DEPLOY_SSH}:${DEPLOY_WWW_ROOT}/"
|
|
# Prefer writing to a hernani-owned staging dir if /var/www not writable
|
|
STAGE_REMOTE="${DEPLOY_STAGING:-/home/hernani/monitoring-sites-staging}"
|
|
|
|
ssh -o BatchMode=yes -o ConnectTimeout=20 "$DEPLOY_SSH" \
|
|
"mkdir -p '$STAGE_REMOTE' '$DEPLOY_WWW_ROOT' 2>/dev/null || mkdir -p '$STAGE_REMOTE'"
|
|
|
|
rsync -az --delete "$HTML_DIR/" "${DEPLOY_SSH}:${STAGE_REMOTE}/"
|
|
echo "staged on $DEPLOY_SSH:$STAGE_REMOTE"
|
|
echo
|
|
echo "If $DEPLOY_WWW_ROOT is root-owned, as root on koopa:"
|
|
echo " mkdir -p $DEPLOY_WWW_ROOT"
|
|
echo " rsync -a --delete $STAGE_REMOTE/ $DEPLOY_WWW_ROOT/"
|
|
echo " chown -R caddy:caddy $DEPLOY_WWW_ROOT # or root:caddy — match other www"
|
|
echo " # then Caddyfile handles + reload — see ROOT-ON-KOOPA.md"
|
|
echo
|
|
# try direct rsync to DEPLOY_WWW_ROOT if writable
|
|
if ssh -o BatchMode=yes "$DEPLOY_SSH" "test -w '$DEPLOY_WWW_ROOT' 2>/dev/null || test -w \"\$(dirname '$DEPLOY_WWW_ROOT')\""; then
|
|
rsync -az --delete "$HTML_DIR/" "${DEPLOY_SSH}:${DEPLOY_WWW_ROOT}/" && \
|
|
echo "also synced directly to $DEPLOY_WWW_ROOT"
|
|
fi
|