lib/Tools/keywords
changeset 33684 29d8aaeb56e5
parent 29143 72c960b2b83e
child 35022 c844b93dd147
equal deleted inserted replaced
33683:8d43e5e0588d 33684:29d8aaeb56e5
    14   echo
    14   echo
    15   echo "Usage: isabelle $PRG [OPTIONS] [LOGS ...]"
    15   echo "Usage: isabelle $PRG [OPTIONS] [LOGS ...]"
    16   echo
    16   echo
    17   echo "  Options are:"
    17   echo "  Options are:"
    18   echo "    -k NAME      specific name of keywords collection (default: empty)"
    18   echo "    -k NAME      specific name of keywords collection (default: empty)"
    19   echo "    -t TARGET    target tool (default: emacs)"
       
    20   echo
    19   echo
    21   echo "  Generate outer syntax keyword files from (compressed) session LOGS."
    20   echo "  Generate outer syntax keyword files from (compressed) session LOGS."
       
    21   echo "  Targets Emacs Proof General."
    22   echo
    22   echo
    23   exit 1
    23   exit 1
    24 }
    24 }
    25 
    25 
    26 
    26 
    27 ## process command line
    27 ## process command line
    28 
    28 
    29 # options
    29 # options
    30 
    30 
    31 KEYWORDS_NAME=""
    31 KEYWORDS_NAME=""
    32 TARGET_TOOL="emacs"
       
    33 
    32 
    34 while getopts "k:t:" OPT
    33 while getopts "k:" OPT
    35 do
    34 do
    36   case "$OPT" in
    35   case "$OPT" in
    37     k)
    36     k)
    38       KEYWORDS_NAME="$OPTARG"
    37       KEYWORDS_NAME="$OPTARG"
    39       ;;
       
    40     t)
       
    41       TARGET_TOOL="$OPTARG"
       
    42       ;;
    38       ;;
    43     \?)
    39     \?)
    44       usage
    40       usage
    45       ;;
    41       ;;
    46   esac
    42   esac
    47 done
    43 done
    48 
    44 
    49 shift $(($OPTIND - 1))
    45 shift $(($OPTIND - 1))
    50 
    46 
    51 
    47 
    52 # args
       
    53 
       
    54 LOGS="$@"; shift "$#"
       
    55 
       
    56 
       
    57 ## main
    48 ## main
    58 
    49 
    59 SESSIONS=""
    50 SESSIONS=""
    60 for LOG in $LOGS
    51 for LOG in "$@"
    61 do
    52 do
    62   NAME="$(basename "$LOG" .gz)"
    53   NAME="$(basename "$LOG" .gz)"
    63   if [ -z "$SESSIONS" ]; then
    54   if [ -z "$SESSIONS" ]; then
    64     SESSIONS="$NAME"
    55     SESSIONS="$NAME"
    65   else
    56   else
    66     SESSIONS="$SESSIONS + $NAME"
    57     SESSIONS="$SESSIONS + $NAME"
    67   fi
    58   fi
    68 done
    59 done
    69 
    60 
    70 for LOG in $LOGS
    61 for LOG in "$@"
    71 do
    62 do
    72   if [ "${LOG%.gz}" = "$LOG" ]; then
    63   if [ "${LOG%.gz}" = "$LOG" ]; then
    73     cat "$LOG"
    64     cat "$LOG"
    74   else
    65   else
    75     gzip -dc "$LOG"
    66     gzip -dc "$LOG"
    76   fi
    67   fi
    77   echo
    68   echo
    78 done | \
    69 done | \
    79 perl -w "$ISABELLE_HOME/lib/scripts/keywords.pl" "$KEYWORDS_NAME" "$TARGET_TOOL" "$SESSIONS"
    70 perl -w "$ISABELLE_HOME/lib/scripts/keywords.pl" "$KEYWORDS_NAME" "$SESSIONS"