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