X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=examples%2Fcustom_overrides%2Ffred%2Fjava_profile.sh;h=67cb90fbee2c0f01dd01154683db1fade075d642;hb=fb310c5386967c2f62e1ea5e0f4b39dd4d704937;hp=94c40f868c57e06984b3d9be9cb57f1503114b8b;hpb=59d1b38b8abc7beb744672a7ef3883c9f714b82e;p=feisty_meow.git diff --git a/examples/custom_overrides/fred/java_profile.sh b/examples/custom_overrides/fred/java_profile.sh index 94c40f86..67cb90fb 100644 --- a/examples/custom_overrides/fred/java_profile.sh +++ b/examples/custom_overrides/fred/java_profile.sh @@ -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 } @@ -35,21 +50,12 @@ 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 + JAVA_HOME="$(ls -d c:/tools/*jdk* 2>/dev/null)" +fi +if [ ! -d "$JAVA_HOME" ]; then + if [ ! -z "$(grep -i 'd:' /proc/mounts 2>/dev/null)" ]; then + # try using a windows version. + JAVA_HOME="$(ls -d d:/tools/*jdk* 2>/dev/null)" fi fi # this should go last, since it changes the bin dir. @@ -60,11 +66,10 @@ if [ ! -d "$JAVA_HOME" ]; then 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 + unset JAVA_HOME + unset JAVA_BIN_PIECE + if [ -z "$(whichable java 2>/dev/null)" ]; then intuition_failure JAVA_HOME - unset JAVA_BIN_PIECE fi fi @@ -81,26 +86,30 @@ 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" + ECLIPSE_DIR="c:/tools/eclipse" fi if [ ! -d "$ECLIPSE_DIR" ]; then - ECLIPSE_DIR="/c/tools/eclipse" -fi -if [ ! -d "$ECLIPSE_DIR" ]; then - ECLIPSE_DIR="/d/tools/eclipse" + if [ ! -z "$(grep -i 'd:' /proc/mounts)" ]; then + ECLIPSE_DIR="d:/tools/eclipse" + fi fi if [ ! -d "$ECLIPSE_DIR" ]; then - ECLIPSE_DIR="/e/tools/eclipse" + if [ ! -z "$(grep -i 'e:' /proc/mounts)" ]; then + ECLIPSE_DIR="e:/tools/eclipse" + fi 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; + unset ECLIPSE_DIR +else + if [ ! -z "$(uname -a | grep -i cygwin)" ]; then + # fix the path for cygwin's bizarre requirement of /cygdrive/X. + ECLIPSE_DIR=$(echo $ECLIPSE_DIR | sed -e 's/^\(.\):/\/cygdrive\/\1/') fi fi +if [ -z "$ECLIPSE_DIR" -a -z "$(whichable eclipse 2>/dev/null)" ]; then + intuition_failure ECLIPSE_DIR +fi ############################ @@ -108,10 +117,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 ############################