JAL-3830 improved bash scripts. Added powershell script. Needs testing
[jalview.git] / utils / getdown / jalviewc
index a3fa66b..4792a9c 100755 (executable)
@@ -1,12 +1,11 @@
 #!/usr/bin/env bash
 
 ARG1=$1
-WDIR="$( pwd )"
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+DIR="$(dirname "$(readlink -f "$0")")"
 
 # check to see if $1 is set and is not start of other cli set args
 OPEN=""
-if [ -n "$ARG1" -a "$ARG1" = "${ARG1#-}" -a \! "$ARG1" = "open" ]; then
+if [ -n "${ARG1}" -a "${ARG1}" = "${ARG1#-}" -a "${ARG1}" != "open" ]; then
  # first argument exists and does not start with a "-" and is not "open"
  OPEN="-open"
 fi
@@ -14,15 +13,21 @@ fi
 APPDIR="${DIR}"
 JAVA="${APPDIR}/jre/bin/java"
 GETDOWNTXT="${APPDIR}/getdown.txt"
-if [ -e "$GETDOWNTXT" ]; then
-  CLASSPATH=""
-  for x in $(grep -e 'code = ' "${GETDOWNTXT}" | sed -e 's/^code\s*=\s*//;'); do
-    [ -n "$CLASSPATH" ] && CLASSPATH="${CLASSPATH}:"
-    CLASSPATH="${CLASSPATH}${APPDIR}/${x}"
+CLASSPATH=""
+if [ -e "${GETDOWNTXT}" ]; then
+  for JAR in $(grep -e '^code\s*=\s*' "${GETDOWNTXT}" | sed -e 's/^code\s*=\s*//;'); do
+    [ -n "${CLASSPATH}" ] && CLASSPATH="${CLASSPATH}:"
+    CLASSPATH="${CLASSPATH}${APPDIR}/${JAR}"
   done
 else
   echo "Cannot find getdown.txt" >&2
-  exit 1
+  exit 3
 fi
 
-"$JAVA" -cp "$CLASSPATH" jalview.bin.Launcher $OPEN "$@"
+if [ \! -e "${JAVA}" ]; then
+  echo "Cannot find bundled java, using system and hoping for the best!" >&2
+  JAVA=java
+fi
+
+# don't quote $OPEN
+"${JAVA}" -cp "${CLASSPATH}" jalview.bin.Launcher ${OPEN} "$@"