lib/scripts/feeder
author wenzelm
Mon, 29 Dec 1997 21:39:22 +0100
changeset 4501 5f629ee2502b
child 4504 2f39aa4bebf3
permissions -rwxr-xr-x
feed isabelle session;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4501
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     1
#!/bin/bash
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     2
#
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
     3
# $Id$
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
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    10
PRG=$(basename $0)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    11
DIR=$(dirname $0)
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:"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    19
  echo "    -h TEXT      head text"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    20
  echo "    -i           ignore INT signal"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    21
  echo "    -p           emit my pid"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    22
  echo "    -q           do not pipe stdin"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    23
  echo "    -s           filter symbols"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    24
  echo "    -t TEXT      tail text"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    25
  echo
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    26
  echo "  Output texts (pid, head, stdin, tail), then wait to be terminated."
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    27
  echo
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    28
  exit 1
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    29
}
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    30
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    31
function fail()
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    32
{
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    33
  echo "$1" >&2
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    34
  exit 2
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    35
}
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    36
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    37
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    38
## process command line
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    39
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    40
# options
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    41
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    42
HEAD=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    43
NOINT=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    44
EMITPID=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    45
QUIT=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    46
SYMBOLS=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    47
TAIL=""
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    48
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    49
while getopts "h:ipqst:" OPT
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    50
do
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    51
  case "$OPT" in
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    52
    h)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    53
      HEAD="$OPTARG"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    54
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    55
    i)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    56
      NOINT=true
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    57
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    58
    p)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    59
      EMITPID=true
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    60
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    61
    q)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    62
      QUIT=true
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    63
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    64
    s)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    65
      SYMBOLS=true
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    66
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    67
    t)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    68
      TAIL="$OPTARG"
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    69
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    70
    \?)
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    71
      usage
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    72
      ;;
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    73
  esac
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    74
done
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    75
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    76
shift $(($OPTIND - 1))
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    77
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    78
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    79
# args
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    80
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    81
[ $# -ne 0 ] && { echo "Bad args: $*"; usage; }
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    82
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    83
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    84
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    85
## main
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    86
5f629ee2502b feed isabelle session;
wenzelm
parents:
diff changeset
    87
exec perl -w $DIR/feeder.pl "$HEAD" "$NOINT" "$EMITPID" "$QUIT" "$SYMBOLS" "$TAIL"