diff options
| -rwxr-xr-x | publish.sh | 51 |
1 files changed, 33 insertions, 18 deletions
@@ -1,22 +1,37 @@ -#!/bin/sh +#!/bin/bash -set -eox pipefail +set -eo pipefail -base="$(realpath $(dirname "$0"))" -git checkout main -hash="$(git rev-parse HEAD| head -c 12)" -temp="/tmp/site-$hash" +cd "$(dirname "$0")" + +VPS_HOST="${VPS_HOST:-}" +VPS_USER="${VPS_USER:-root}" +remote_target="/var/www/html" +tarball_name="site.tar.gz" + +die() { + echo -e ERR "$*" >&2 + exit 1 +} + +if [ -z "$VPS_HOST" ] || [ -z "$VPS_USER" ]; then + echo VPS_HOST? VPS_USER? + exit 1 +fi + +set -x -git push zola build -cd /tmp -git clone --branch pages "$base" "$temp" -cd "$temp" -git rm -r "*" || : -cp -ar "$base"/public/* "$base"/public/.* "$base"/.domains . -git add --all -git commit -m "Publish $hash" || : -git remote add cb 'ssh://git@codeberg.org/lsof/pages.git' -git push cb -cd -rm -rf "$temp" +tar -czf "$tarball_name" -C public/ . +scp "$tarball_name" "$VPS_USER@$VPS_HOST:$REMOTE_TMP/$tarball_name" + +ssh "$VPS_USER@$VPS_HOST" <<EOF + set -ex # stop on any error + sudo mkdir -p "$remote_target" + sudo rm -rf "$remote_target"/* + sudo tar -xzf "$REMOTE_TMP/$tarball_name" -C "$remote_target" + sudo rm "$REMOTE_TMP/$tarball_name" + echo "Unpacking completed." +EOF + +rm -f "$tarball_name" |