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