X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=examples%2Fcustom_overrides%2Ffred%2Fjava_profile.sh;h=67cb90fbee2c0f01dd01154683db1fade075d642;hb=537c01c4d0075f150f4bb6e479e476b0c57a8a2b;hp=69cb9308e345ea6b061b5213a1433f8bb53d4525;hpb=f4c535d65bdae3e623c9df35e961312dc32fb809;p=feisty_meow.git diff --git a/examples/custom_overrides/fred/java_profile.sh b/examples/custom_overrides/fred/java_profile.sh index 69cb9308..67cb90fb 100644 --- a/examples/custom_overrides/fred/java_profile.sh +++ b/examples/custom_overrides/fred/java_profile.sh @@ -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,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. @@ -63,9 +65,12 @@ 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 2>/dev/null)" ]; then - intuition_failure JAVA_HOME +if [ ! -d "$JAVA_HOME" ]; then + unset JAVA_HOME unset JAVA_BIN_PIECE + if [ -z "$(whichable java 2>/dev/null)" ]; then + intuition_failure JAVA_HOME + fi fi ############################ @@ -81,20 +86,28 @@ 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 -i 'd:' /proc/mounts)" ]; then + ECLIPSE_DIR="d:/tools/eclipse" + fi fi if [ ! -d "$ECLIPSE_DIR" ]; then - ECLIPSE_DIR="/d/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 - 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 -# final option is to whine. -if [ ! -d "$ECLIPSE_DIR" -a -z "$(which eclipse 2>/dev/null)" ]; then +if [ -z "$ECLIPSE_DIR" -a -z "$(whichable eclipse 2>/dev/null)" ]; then intuition_failure ECLIPSE_DIR fi @@ -104,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 ############################