lib/Tools/update_header
author wenzelm
Sun Nov 02 16:47:45 2014 +0100 (2014-11-02)
changeset 58872 f0f623005324
child 62446 5b749c31eb97
permissions -rwxr-xr-x
added update_header tool;
     1 #!/usr/bin/env bash
     2 #
     3 # Author: Makarius
     4 #
     5 # DESCRIPTION: replace obsolete theory header command
     6 
     7 
     8 ## diagnostics
     9 
    10 PRG="$(basename "$0")"
    11 
    12 function usage()
    13 {
    14   echo
    15   echo "Usage: isabelle $PRG [FILES|DIRS...]"
    16   echo
    17   echo "  Options are:"
    18   echo "    -s COMMAND   alternative heading command (default 'section')"
    19   echo
    20   echo "  Recursively find .thy files and replace obsolete theory header commands"
    21   echo "  by 'section' (default), or 'chapter', 'subsection', 'subsubsection'."
    22   echo
    23   echo "  Old versions of files are preserved by appending \"~~\"."
    24   echo
    25   exit 1
    26 }
    27 
    28 
    29 ## process command line
    30 
    31 #options
    32 
    33 SECTION="section"
    34 
    35 while getopts "s:" OPT
    36 do
    37   case "$OPT" in
    38     s)
    39       SECTION="$OPTARG"
    40       ;;
    41     \?)
    42       usage
    43       ;;
    44   esac
    45 done
    46 
    47 shift $(($OPTIND - 1))
    48 
    49 
    50 # args
    51 
    52 [ "$#" -eq 0 -o "$1" = "-?" ] && usage
    53 
    54 SPECS="$@"; shift "$#"
    55 
    56 
    57 ## main
    58 
    59 find $SPECS -name \*.thy -print0 | \
    60   xargs -0 "$ISABELLE_TOOL" java isabelle.Update_Header "$SECTION"