meanas/.githooks/post-push

50 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
set -Eeuo pipefail
REMOTE_NAME="${1:-}"
REMOTE_URL="${2:-}"
if [[ "${MEANAS_DOCS_PUBLISHING:-0}" == "1" ]]; then
echo "[meanas docs hook] recursive docs publish detected; skipping" >&2
exit 0
fi
if [[ "$REMOTE_NAME" != "origin" ]]; then
echo "[meanas docs hook] push was to remote '${REMOTE_NAME:-<none>}' not 'origin'; skipping" >&2
exit 0
fi
publish_docs=0
while read -r local_ref local_sha remote_ref remote_sha; do
if [[ "$local_ref" == "refs/heads/master" && "$remote_ref" == "refs/heads/master" && "$local_sha" != "0000000000000000000000000000000000000000" ]]; then
publish_docs=1
break
fi
done
if [[ "$publish_docs" != "1" ]]; then
echo "[meanas docs hook] no master->master update in push; skipping docs publish" >&2
exit 0
fi
ROOT="$(git rev-parse --show-toplevel)"
cd "$ROOT"
if ! command -v mkdocs >/dev/null 2>&1; then
echo "[meanas docs hook] mkdocs not found; skipping docs publish" >&2
exit 0
fi
DOCS_SITE_URL="${DOCS_SITE_URL:-$(git config --get meanas.docsSiteUrl || true)}"
export DOCS_SITE_URL
if [[ -n "$DOCS_SITE_URL" ]]; then
echo "[meanas docs hook] publishing docs for ${DOCS_SITE_URL}" >&2
else
echo "[meanas docs hook] DOCS_SITE_URL is unset; building docs with relative site_url" >&2
fi
echo "[meanas docs hook] building docs after push to ${REMOTE_NAME} (${REMOTE_URL})" >&2
MEANAS_DOCS_PUBLISHING=1 ./make_docs.sh
echo "[meanas docs hook] publishing docs-site branch" >&2
MEANAS_DOCS_PUBLISHING=1 ./scripts/publish_docs_branch.sh site docs-site