1#!/usr/bin/env bash
2
3# Start the CoCoAInterpreter supplying the value of "--packageDir".
4
5#############################################################################
6# Find directory of this script (taken from link below)
7# http://stackoverflow.com/questions/4774054/reliable-way-for-a-bash-script-to-get-the-full-path-to-itself
8
9pushd . > /dev/null
10SCRIPT_PATH="${BASH_SOURCE[0]}"
11while [ -L "$SCRIPT_PATH" ]
12do
13  cd "`dirname "$SCRIPT_PATH"`"
14  SCRIPT_PATH="$(readlink "`basename "$SCRIPT_PATH"`")"
15done
16cd "`dirname "$SCRIPT_PATH"`" > /dev/null
17SCRIPT_DIR="`pwd`"
18popd  > /dev/null
19
20
21# At this point SCRIPT_DIR contains the path to the directory
22# where the CoCoAInterpreter executable and also packages/ subdir.
23
24##################################################################
25### executable
26
27### for released CoCoA (as in release-files/): CoCoAInterpreter is in bin/
28COCOA_EXECUTABLE="$SCRIPT_DIR/bin/CoCoAInterpreter"
29### for developer CoCoA
30# COCOA_EXECUTABLE="$SCRIPT_DIR/CoCoAInterpreter"
31
32
33#############################################################################
34# A simple sanity check that this script has been correctly set up.
35
36if [ ! -f "$COCOA_EXECUTABLE" ]
37then
38  sleep 1 # Useful if running inside emacs (see redmine 1352)
39  echo ""                                           >/dev/stderr
40  echo "========================================="    >/dev/stderr
41  echo ">>> ERROR: COCOA-5 EXECUTABLE MISSING <<<"    >/dev/stderr
42  echo "========================================="    >/dev/stderr
43  echo "Expected to find CoCoA-5 executable at path"  >/dev/stderr
44  echo "$COCOA_EXECUTABLE"                            >/dev/stderr
45  echo                                                >/dev/stderr
46  echo "Exiting..."                                   >/dev/stderr
47  sleep 4
48  exit 1
49fi
50if [ ! -x "$COCOA_EXECUTABLE" ]
51then
52  sleep 1 # Useful if running inside emacs (see redmine 1352)
53  echo ""                                           >/dev/stderr
54  echo "============================================" >/dev/stderr
55  echo ">>> ERROR: COCOA-5 BINARY NOT EXECUTABLE <<<" >/dev/stderr
56  echo "============================================" >/dev/stderr
57  echo "CoCoA-5 binary must be executable: file is"   >/dev/stderr
58  echo "$COCOA_EXECUTABLE"                            >/dev/stderr
59  echo                                                >/dev/stderr
60  echo "Exiting..."                                   >/dev/stderr
61  sleep 4
62  exit 1
63fi
64if [ ! -d "$SCRIPT_DIR/packages" ]
65then
66  sleep 1 # Useful if running inside emacs (see redmine 1352)
67  echo ""                                           >/dev/stderr
68  echo "======================================="      >/dev/stderr
69  echo ">>> ERROR: COCOA-5 PACKAGES MISSING <<<"      >/dev/stderr
70  echo "======================================="      >/dev/stderr
71  echo "Expected CoCoA-5 package directory to be:"    >/dev/stderr
72  echo "$SCRIPT_DIR/packages/"                        >/dev/stderr
73  echo                                                >/dev/stderr
74  echo "Exiting..."                                   >/dev/stderr
75  sleep 4
76  exit 1
77fi
78
79
80#############################################################################
81# Start CoCoA!
82
83exec "$COCOA_EXECUTABLE" --packageDir "$SCRIPT_DIR/packages" "$@"
84