lib/scripts/feeder
author blanchet
Tue, 22 Mar 2011 18:38:29 +0100
changeset 42063 a2a69b32d899
parent 40335 3e4bb6e7c3ca
permissions -rwxr-xr-x
added "TPTP" theory with IsabelleP tactic, so that it is maintained alongside with Isabelle and that the CASC version of Isabelle is provided by Isabelle itself instead of being stored on the TPTP servers
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10555
2323ec838401 /usr/bin/env bash;
wenzelm
parents: 10512
diff changeset
     1
#!/usr/bin/env bash
4501
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     2
#
9789
wenzelm
parents: 6082
diff changeset
     3
# Author: Markus Wenzel, TU Muenchen
4501
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     4
#
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     5
# feeder - feed isabelle session
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     6
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     7
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     8
## diagnostics
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     9
10512
wenzelm
parents: 9789
diff changeset
    10
PRG="$(basename "$0")"
wenzelm
parents: 9789
diff changeset
    11
DIR="$(dirname "$0")"
4501
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    12
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    13
function usage()
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    14
{
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    15
  echo
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    16
  echo "Usage: $PRG [OPTIONS]"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    17
  echo
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    18
  echo "  Options are:"
40335
3e4bb6e7c3ca feeder: treat header as escaped utf8 to allow initial ML text to refer to non-ASCII file/directory names (e.g. "Documents/" on Chinese Ubuntu);
wenzelm
parents: 29145
diff changeset
    19
  echo "    -h TEXT      head text (encoded as utf8)"
4501
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    20
  echo "    -p           emit my pid"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    21
  echo "    -q           do not pipe stdin"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    22
  echo "    -t TEXT      tail text"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    23
  echo
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    24
  echo "  Output texts (pid, head, stdin, tail), then wait to be terminated."
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    25
  echo
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    26
  exit 1
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    27
}
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    28
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    29
function fail()
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    30
{
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    31
  echo "$1" >&2
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    32
  exit 2
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    33
}
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    34
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    35
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    36
## process command line
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    37
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    38
# options
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    39
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    40
HEAD=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    41
EMITPID=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    42
QUIT=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    43
TAIL=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    44
12111
d942348d8faf got rid of obsolete input filtering;
wenzelm
parents: 10555
diff changeset
    45
while getopts "h:pqt:" OPT
4501
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    46
do
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    47
  case "$OPT" in
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    48
    h)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    49
      HEAD="$OPTARG"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    50
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    51
    p)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    52
      EMITPID=true
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    53
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    54
    q)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    55
      QUIT=true
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    56
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    57
    t)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    58
      TAIL="$OPTARG"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    59
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    60
    \?)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    61
      usage
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    62
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    63
  esac
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    64
done
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    65
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    66
shift $(($OPTIND - 1))
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    67
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    68
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    69
# args
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    70
9789
wenzelm
parents: 6082
diff changeset
    71
[ "$#" -ne 0 ] && { echo "Bad args: $*"; usage; }
4501
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    72
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    73
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    74
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    75
## main
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    76
26576
fc76b7b79ba9 removed obsolete AUTO_PERL feature;
wenzelm
parents: 15847
diff changeset
    77
exec perl -w "$DIR"/feeder.pl "$HEAD" "$EMITPID" "$QUIT" "$TAIL"