#!/usr/bin/env sh set -eu if [ "$#" -gt 1 ]; then echo "usage: $0 [WIKI_REPOSITORY_URL]" >&2 exit 2 fi script_directory=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) repository_root=$(CDPATH= cd -- "$script_directory/../.." && pwd) wiki_repository_url=${1:-} temporary_directory=$(mktemp -d "${TMPDIR:-/tmp}/openuf-wiki.XXXXXX") if [ -z "$wiki_repository_url" ]; then origin_url=$(git -C "$repository_root" config --get remote.origin.url || true) if [ -z "$origin_url" ]; then echo "no origin remote found; pass the Gitea Wiki repository URL" >&2 exit 2 fi source_repository_url=${origin_url%.git} repository_parent=${source_repository_url%/*} repository_name=${source_repository_url##*/} wiki_repository_name=$( printf '%s' "$repository_name" | tr '[:upper:]' '[:lower:]' ) wiki_repository_url="$repository_parent/$wiki_repository_name.wiki.git" fi cleanup() { rm -rf -- "$temporary_directory" } trap cleanup EXIT HUP INT TERM git clone -- "$wiki_repository_url" "$temporary_directory/wiki" "$script_directory/generate-wiki.py" --output "$temporary_directory/wiki" "$script_directory/generate-wiki.py" --check \ --output "$temporary_directory/wiki" cd "$temporary_directory/wiki" git add -- Home.md Developer-Guide.md Call-Graph.md Runtime-Flow.md _Sidebar.md if git diff --cached --quiet; then echo "Gitea Wiki is already current" exit 0 fi git -c user.name="openUF documentation bot" \ -c user.email="actions@openuf.invalid" \ commit -m "docs: update generated developer wiki" git push origin HEAD