added some guards for drives on winders that might not be mounted, since we don't...
[feisty_meow.git] / examples / custom_overrides / fred / java_profile.sh
old mode 100644 (file)
new mode 100755 (executable)
index 0f25a7a..24eb075
@@ -6,6 +6,17 @@
 
 ############################
 
+function whichable()
+{
+  to_find="$1"; shift
+  which which &>/dev/null
+  if [ $? -ne 0 ]; then
+    # there is no which command here.  we produce nothing due to this.
+    echo
+  fi
+  echo $(which $to_find)
+}
+
 # this reports when we have totally failed to figure out where a folder
 # is actually located on the machine.
 function intuition_failure()
@@ -39,21 +50,9 @@ if [ ! -d "$JAVA_HOME" ]; then
   export JAVA_HOME=/usr/lib/jvm/java-7-oracle/jre
 fi
 if [ ! -d "$JAVA_HOME" ]; then
-  # try using a windows version.
-#note: this logic is untested.
-# probably will break due to space in path issues.
-  declare -a any_there=$(find "/c/Program Files/java" -type d -iname "jdk" 2>/dev/null)
-  if [ ${#any_there[*]} -gt 0 ]; then
-    (( last = ${#any_there[@]} - 1 ))
-    JAVA_HOME="${any_there[$last]}"
-  fi
-  if [ ! -d "$JAVA_HOME" ]; then
-    # if no jdk, try a jre.
-    declare -a any_there=$(find "/c/Program Files/java" -type d -iname "jre" 2>/dev/null)
-    if [ ${#any_there[*]} -gt 0 ]; then
-      (( last = ${#any_there[@]} - 1 ))
-      JAVA_HOME="${any_there[$last]}"
-    fi
+  if [ ! -z "$(grep 'd:' /proc/mounts)" ]; then
+    # try using a windows version.
+    JAVA_HOME="d:/tools/java6-jdk"
   fi
 fi
 # this should go last, since it changes the bin dir.
@@ -63,7 +62,7 @@ if [ ! -d "$JAVA_HOME" ]; then
   JAVA_BIN_PIECE=Commands
 fi
 # last thing is to tell them we couldn't find it.
-if [ ! -d "$JAVA_HOME" -a -z "$(which java)" ]; then
+if [ ! -d "$JAVA_HOME" -a -z "$(whichable java 2>/dev/null)" ]; then
   intuition_failure JAVA_HOME
   unset JAVA_BIN_PIECE
 fi
@@ -81,21 +80,25 @@ if [ ! -d "$ECLIPSE_DIR" ]; then
   ECLIPSE_DIR=$HOME/apps/eclipse
 fi
 if [ ! -d "$ECLIPSE_DIR" ]; then
-#uhhh, default on winders?
-  ECLIPSE_DIR="/c/Program Files/eclipse"
-fi
-if [ ! -d "$ECLIPSE_DIR" ]; then
-  ECLIPSE_DIR="/c/tools/eclipse"
+  ECLIPSE_DIR="c:/tools/eclipse"
 fi
 if [ ! -d "$ECLIPSE_DIR" ]; then
-  ECLIPSE_DIR="/d/tools/eclipse"
+  if [ ! -z "$(grep 'd:' /proc/mounts)" ]; then
+    ECLIPSE_DIR="d:/tools/eclipse"
+  fi
 fi
 if [ ! -d "$ECLIPSE_DIR" ]; then
-  ECLIPSE_DIR="/e/tools/eclipse"
+  if [ ! -z "$(grep 'e:' /proc/mounts)" ]; then
+    ECLIPSE_DIR="e:/tools/eclipse"
+  fi
 fi
 # final option is to whine.
-if [ ! -d "$ECLIPSE_DIR" -a -z "$(which eclipse)" ]; then
+if [ ! -d "$ECLIPSE_DIR" -a -z "$(whichable eclipse 2>/dev/null)" ]; then
   intuition_failure ECLIPSE_DIR
+else
+  if [ ! -z "$(uname -a | grep -i cygwin)" ]; then
+    ECLIPSE_DIR=$(echo $ECLIPSE_DIR | sed -e 's/^\(.\):/\/cygdrive\/\1/')
+  fi
 fi
 
 ############################
@@ -104,10 +107,18 @@ fi
 # any other paths to different versions.
 
 if [ ! -z "$JAVA_HOME" ]; then
-  export PATH=$JAVA_HOME/$JAVA_BIN_PIECE:$PATH
+  j="$JAVA_HOME"
+  if [ ! -z "$(uname -a | grep -i cygwin)" ]; then
+    j=$(echo $j | sed -e 's/^\(.\):/\/cygdrive\/\1/')
+  fi
+  export PATH=$j/$JAVA_BIN_PIECE:$PATH
 fi
 if [ ! -z "$ECLIPSE_DIR" ]; then
-  export PATH=$ECLIPSE_DIR:$PATH
+  e="$ECLIPSE_DIR"
+  if [ ! -z "$(uname -a | grep -i cygwin)" ]; then
+    e=$(echo $e | sed -e 's/^\(.\):/\/cygdrive\/\1/')
+  fi
+  export PATH=$e:$PATH
 fi
 
 ############################