X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=examples%2Fcustom_overrides%2Ffred%2Fjava_profile.sh;h=612308e698b791000c8b3186f797b1bbd2c36fbb;hb=eaad005a9fbdee6c960a24c015aa59b755bd3445;hp=82bf336e5c39adb81c80fc74275a44a783eb9048;hpb=a13cd5a85a0981acfd3702c4eaec9aeff3ed80da;p=feisty_meow.git diff --git a/examples/custom_overrides/fred/java_profile.sh b/examples/custom_overrides/fred/java_profile.sh old mode 100644 new mode 100755 index 82bf336e..612308e6 --- 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 } @@ -31,24 +46,16 @@ if [ ! -d "$JAVA_HOME" ]; then export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre fi if [ ! -d "$JAVA_HOME" ]; then + # try an even more recent version. 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 '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. @@ -59,8 +66,11 @@ if [ ! -d "$JAVA_HOME" ]; then fi # last thing is to tell them we couldn't find it. if [ ! -d "$JAVA_HOME" ]; then - intuition_failure JAVA_HOME + unset JAVA_HOME unset JAVA_BIN_PIECE + if [ -z "$(whichable java 2>/dev/null)" ]; then + intuition_failure JAVA_HOME + fi fi ############################ @@ -76,20 +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" + if [ ! -z "$(grep 'd:' /proc/mounts)" ]; then + ECLIPSE_DIR="d:/tools/eclipse" + fi fi if [ ! -d "$ECLIPSE_DIR" ]; then - ECLIPSE_DIR="/d/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" ]; then - ECLIPSE_DIR="/e/tools/eclipse" + 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 -# final option is to whine. -if [ ! -d "$ECLIPSE_DIR" ]; then intuition_failure ECLIPSE_DIR; fi ############################ @@ -97,10 +117,18 @@ if [ ! -d "$ECLIPSE_DIR" ]; then intuition_failure ECLIPSE_DIR; 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=$PATH:$j/$JAVA_BIN_PIECE 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=$PATH:$e fi ############################