branch='trunk'
if ! command -v git >/dev/null 2>&1; then
echo 'byggsteg: git is not on this deployment PATH, so the clone cannot be updated' >&2
exit 1
fi
if ! cd "$dir"; then
echo "byggsteg: cannot enter the clone $dir" >&2
exit 1
fi
root=$(git rev-parse --show-toplevel 2>/dev/null)
if [ "$root" != "$(pwd -P)" ]; then
echo "byggsteg: $dir is not a git checkout; remove it and the next run clones it again" >&2
exit 1
fi
if ! origin=$(git remote get-url origin 2>/dev/null); then
echo "byggsteg: $dir has no origin remote to fetch $branch from" >&2
exit 1
fi
before=$(git rev-parse --short HEAD 2>/dev/null) || before=none
attempt=1
while :; do
if GIT_TERMINAL_PROMPT=0 git fetch --quiet origin "+refs/heads/$branch:refs/remotes/origin/$branch"; then
break
fi
if [ "$attempt" -ge 3 ]; then
echo "byggsteg: could not fetch $branch from $origin after 3 attempts; is the branch still there, and is the remote reachable?" >&2
exit 1
fi
echo "byggsteg: fetching $branch from $origin failed; retrying in $((attempt * 2))s" >&2
sleep $((attempt * 2))
attempt=$((attempt + 1))
done
if ! git checkout --quiet --force -B "$branch" FETCH_HEAD; then
echo "byggsteg: fetched $branch from $origin but could not check it out" >&2
exit 1
fi
after=$(git rev-parse --short HEAD)
if [ "$before" = "$after" ]; then
echo "byggsteg: $branch was already at $after"
else
echo "byggsteg: $branch moved from $before to $after"
fi
byggsteg: trunk moved from a4dd9bd to b746760
setupuname -a✓ succeeded1 lines · 0.0s
Linux wolk-jjba 7.2.11-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux
commit b746760decb1eab4a5de4006a6f1c5ea1b32f30e
Author: Josep Bigorra (Joe) <jjbigorra@gmail.com>
Date: Tue Nov 10 20:47:53 2026 +0100
chore: show the sponsor button
A .github/FUNDING.yml
deploysudo maak deploy✓ succeeded16 lines · 0.1s
--------------------------------------------------------------
Maak 0.14.0: the infinitely extensible command runner
Loading tasks from Maak file: /etc/byggsteg/job-clone/wip-site/trunk/maak.scm
Executing Maak tasks: deploy
--------------------------------------------------------------
=> Running Maak task: deploy
Copy index.html and index.css into the deploy directory.
The publish directory is $WIP_SITE_DEPLOY_DIR when it is set, and
/srv/http/wip-site.jointhefreeworld.org otherwise. There is no build step:
the files are the site.
Examples:
maak deploy
WIP_SITE_DEPLOY_DIR=/var/www/example.org maak deploy
Deploying to /srv/http/wip-site.jointhefreeworld.org
'/etc/byggsteg/job-clone/wip-site/trunk/index.html' -> '/srv/http/wip-site.jointhefreeworld.org/index.html'
'/etc/byggsteg/job-clone/wip-site/trunk/index.css' -> '/srv/http/wip-site.jointhefreeworld.org/index.css'