#!/usr/bin/env bash
#
# Author: Makarius
#
# DESCRIPTION: build Isabelle documentation
## diagnostics
PRG="$(basename "$0")"
function usage()
{
echo
echo "Usage: isabelle $PRG [OPTIONS] [DOCS ...]"
echo
echo " Options are:"
echo " -a select all documentation sessions"
echo " -j INT maximum number of parallel jobs (default 1)"
echo " -s system build mode"
echo
echo " Build Isabelle documentation from documentation sessions with"
echo " suitable document_variants entry."
echo
exit 1
}
function fail()
{
echo "$1" >&2
exit 2
}
function check_number()
{
[ -n "$1" -a -z "$(echo "$1" | tr -d '[0-9]')" ] || fail "Bad number: \"$1\""
}
## process command line
ALL_DOCS="false"
MAX_JOBS="1"
SYSTEM_MODE="false"
while getopts "aj:s" OPT
do
case "$OPT" in
a)
ALL_DOCS="true"
;;
j)
check_number "$OPTARG"
MAX_JOBS="$OPTARG"
;;
s)
SYSTEM_MODE="true"
;;
\?)
usage
;;
esac
done
shift $(($OPTIND - 1))
[ "$ALL_DOCS" = false -a "$#" -eq 0 ] && usage
## main
isabelle_admin_build jars || exit $?
declare -a JAVA_ARGS; eval "JAVA_ARGS=($ISABELLE_BUILD_JAVA_OPTIONS)"
"$ISABELLE_TOOL" java "${JAVA_ARGS[@]}" isabelle.Build_Doc \
"$ALL_DOCS" "$MAX_JOBS" "$SYSTEM_MODE" "$@"