falling back if which is not a valid command.
[feisty_meow.git] / examples / custom_overrides / fred / java_profile.sh
index 94c40f868c57e06984b3d9be9cb57f1503114b8b..423e99d5149dc2b262a829c25f2b846d40ae8f6f 100644 (file)
@@ -6,10 +6,25 @@
 
 ############################
 
+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()
 {
   missing="$1"; shift
-  echo "We cannot intuit your $missing variable for this host."
+  if [ ! -z "$SHELL_DEBUG" ]; then
+    echo "Could not intuit '$missing' variable."
+  fi
   # remove the variable because its value is busted.
   unset $missing
 }
@@ -59,13 +74,9 @@ 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" ]; then
-  if [ ! -z "$(which java)" ]; then
-    echo "okay, java is in the path (JAVA_HOME unknown)."
-  else
-    intuition_failure JAVA_HOME
-    unset JAVA_BIN_PIECE
-  fi
+if [ ! -d "$JAVA_HOME" -a -z "$(whichable java 2>/dev/null)" ]; then
+  intuition_failure JAVA_HOME
+  unset JAVA_BIN_PIECE
 fi
 
 ############################
@@ -94,12 +105,8 @@ if [ ! -d "$ECLIPSE_DIR" ]; then
   ECLIPSE_DIR="/e/tools/eclipse"
 fi
 # final option is to whine.
-if [ ! -d "$ECLIPSE_DIR" ]; then
-  if [ ! -z "$(which eclipse)" ]; then
-    echo "okay, eclipse is in the path (ECLIPSE_DIR unknown)."
-  else
-    intuition_failure ECLIPSE_DIR;
-  fi
+if [ ! -d "$ECLIPSE_DIR" -a -z "$(whichable eclipse 2>/dev/null)" ]; then
+  intuition_failure ECLIPSE_DIR
 fi
 
 ############################