1#!/usr/bin/env bash
2#
3# Author: Markus Wenzel, TU Muenchen
4#
5# DESCRIPTION: get values from Isabelle settings environment
6
7
8## diagnostics
9
10PRG="$(basename "$0")"
11
12function usage()
13{
14  echo
15  echo "Usage: isabelle $PRG [OPTIONS] [VARNAMES ...]"
16  echo
17  echo "  Options are:"
18  echo "    -a           display complete environment"
19  echo "    -b           print values only (doesn't work for -a)"
20  echo "    -d FILE      dump complete environment to FILE"
21  echo "                 (null terminated entries)"
22  echo
23  echo "  Get value of VARNAMES from the Isabelle settings."
24  echo
25  exit 1
26}
27
28
29## process command line
30
31# options
32
33ALL=""
34BASE=""
35DUMP=""
36
37while getopts "abd:" OPT
38do
39  case "$OPT" in
40    a)
41      ALL=true
42      ;;
43    b)
44      BASE=true
45      ;;
46    d)
47      DUMP="$OPTARG"
48      ;;
49    \?)
50      usage
51      ;;
52  esac
53done
54
55shift $(($OPTIND - 1))
56
57
58# args
59
60[ -z "$ALL" -a -z "$DUMP" -a "$#" -eq 0 ] && usage
61[ -n "$ALL" -a "$#" -ne 0 ] && usage
62
63
64## main
65
66if [ -n "$ALL" ]; then
67  env
68else
69  for VAR in "$@"
70  do
71    if [ -n "$BASE" ]; then
72      eval "echo \$$VAR"
73    else
74      eval "echo $VAR=\$$VAR"
75    fi
76  done
77fi
78
79if [ -n "$DUMP" ]; then
80  export PATH_JVM="$(platform_path "$PATH")"
81  exec perl -w -e 'for $key (keys %ENV) { print $key, "=", $ENV{$key}, "\x00"; }' > "$DUMP"
82fi
83
84