lib/Tools/client
author wenzelm
Sat, 10 Mar 2018 14:11:58 +0100
changeset 67811 33199d033505
parent 67810 8ebae6708590
child 67876 cc4832285c38
permissions -rwxr-xr-x
more options: client without implicit server startup;

#!/usr/bin/env bash
#
# Author: Makarius
#
# DESCRIPTION: console interaction for Isabelle server (with line-editor)

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

function usage()
{
  echo
  echo "Usage: isabelle $PRG [OPTIONS]"
  echo
  echo "  Options are:"
  echo "    -n NAME      explicit server name"
  echo "    -p PORT      explicit server port"
  echo
  echo "  Console interaction for Isabelle server (with line-editor)."
  echo
  exit 1
}

function fail()
{
  echo "$1" >&2
  exit 2
}


## process command line

# options

declare -a SERVER_OPTS=()

while getopts "n:p:" OPT
do
  case "$OPT" in
    n)
      SERVER_OPTS["${#SERVER_OPTS[@]}"]="-n"
      SERVER_OPTS["${#SERVER_OPTS[@]}"]="$OPTARG"
      ;;
    p)
      SERVER_OPTS["${#SERVER_OPTS[@]}"]="-p"
      SERVER_OPTS["${#SERVER_OPTS[@]}"]="$OPTARG"
      ;;
    \?)
      usage
      ;;
  esac
done

shift $(($OPTIND - 1))


# args

[ "$#" -ne 0 ] && usage


# main

if type -p "$ISABELLE_LINE_EDITOR" > /dev/null
then
  exec "$ISABELLE_LINE_EDITOR" isabelle server -s -C "${SERVER_OPTS[@]}"
else
  echo "### No line editor: \"$ISABELLE_LINE_EDITOR\""
  exec isabelle server -s -C "${SERVER_OPTS[@]}"
fi