lib/Tools/update_cartouches
author wenzelm
Thu, 05 Nov 2015 00:02:30 +0100
changeset 61579 634cd44bb1d3
parent 61492 3480725c71d2
child 62445 91902961184c
permissions -rwxr-xr-x
symbolic syntax "\<comment> text";

#!/usr/bin/env bash
#
# Author: Makarius
#
# DESCRIPTION: update theory syntax to use cartouches


## diagnostics

PRG="$(basename "$0")"

function usage()
{
  echo
  echo "Usage: isabelle $PRG [FILES|DIRS...]"
  echo
  echo "  Options are:"
  echo "    -c           replace comment marker \"--\" by symbol \"\\<comment>\""
  echo "    -t           replace @{text} antiquotations within text tokens"
  echo
  echo "  Recursively find .thy files and update theory syntax to use cartouches"
  echo "  instead of old-style {* verbatim *} or \`alt_string\` tokens."
  echo
  echo "  Old versions of files are preserved by appending \"~~\"."
  echo
  exit 1
}


## process command line

# options

COMMENT="false"
TEXT="false"

while getopts "ct" OPT
do
  case "$OPT" in
    c)
      COMMENT="true"
      ;;
    t)
      TEXT="true"
      ;;
    \?)
      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_Cartouches "$COMMENT" "$TEXT"