#!/usr/bin/env bash
#
# Author: Makarius
#
# DESCRIPTION: replace obsolete theory header command
## diagnostics
PRG="$(basename "$0")"
function usage()
{
echo
echo "Usage: isabelle $PRG [FILES|DIRS...]"
echo
echo " Options are:"
echo " -s COMMAND alternative heading command (default 'section')"
echo
echo " Recursively find .thy files and replace obsolete theory header commands"
echo " by 'section' (default), or 'chapter', 'subsection', 'subsubsection'."
echo
echo " Old versions of files are preserved by appending \"~~\"."
echo
exit 1
}
## process command line
#options
SECTION="section"
while getopts "s:" OPT
do
case "$OPT" in
s)
SECTION="$OPTARG"
;;
\?)
usage
;;
esac
done
shift $(($OPTIND - 1))
# args
[ "$#" -eq 0 -o "$1" = "-?" ] && usage
SPECS="$@"; shift "$#"
## main
find $SPECS -name \*.thy -print0 | \
xargs -0 "$ISABELLE_TOOL" java isabelle.Update_Header "$SECTION"