lib/Tools/version
changeset 41511 2fe62d602681
parent 32361 141e5151b918
child 48837 d1d806a42c91
--- a/lib/Tools/version	Tue Jan 11 18:23:29 2011 +0100
+++ b/lib/Tools/version	Tue Jan 11 19:55:34 2011 +0100
@@ -1,7 +1,67 @@
 #!/usr/bin/env bash
 #
 # Author: Stefan Berghofer, TU Muenchen
+# Author: Makarius
 #
 # DESCRIPTION: display Isabelle version
 
-echo 'unidentified repository version'    # filled in automatically!
+
+PRG="$(basename "$0")"
+
+function usage()
+{
+  echo
+  echo "Usage: isabelle $PRG [OPTIONS]"
+  echo
+  echo "  Options are:"
+  echo "    -i           short identification (derived from Mercurial id)"
+  echo
+  echo "  Display Isabelle version information."
+  echo
+  exit 1
+}
+
+function fail()
+{
+  echo "$1" >&2
+  exit 2
+}
+
+
+## process command line
+
+# options
+
+SHORT_ID=""
+
+while getopts "i" OPT
+do
+  case "$OPT" in
+    i)
+      SHORT_ID=true
+      ;;
+    \?)
+      usage
+      ;;
+  esac
+done
+
+shift $(($OPTIND - 1))
+
+
+# args
+
+[ "$#" -ne 0 ] && usage
+
+
+## main
+
+if [ -n "$SHORT_ID" ]; then
+  if [ -n "$ISABELLE_ID" ]; then
+    echo "$ISABELLE_ID"
+  else
+    ${HG:-hg} id --repository "$ISABELLE_HOME" --id 2>/dev/null || echo undefined
+  fi
+else
+  echo 'unidentified repository version'    # filled in automatically!
+fi