Generate and publish developer Wiki / generated-wiki (pull_request) Successful in 14s
52 lines
1.6 KiB
Bash
Executable File
52 lines
1.6 KiB
Bash
Executable File
#!/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
|