Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
_macosx() { if [ $(uname -s) = Darwin ]; then return 0 else return 1 fi } JDKS_ROOT= if [ $(uname -s) = Darwin ]; then JDKS_ROOT=/System/Library/Frameworks/JavaVM.framework/Versions fi SOYLATTE_HOME=${HOME}/opt/soylatte pickjdk() { if [ -z "$JDKS_ROOT" ]; then return 1 fi declare -a JDKS local n=1 jdk total_jdks choice=0 currjdk=$JAVA_HOME explicit_jdk for jdk in $JDKS_ROOT/[0-9]*; do if [ -d $jdk -a ! -L $jdk ]; then echo -n " $n) $(basename $jdk)" if _macosx; then jdk=$jdk/Home fi if [ $jdk = "$currjdk" ]; then echo " < CURRENT" else echo fi JDKS[$n]=$jdk total_jdks=$n n=$[ $n + 1 ] fi done echo " $n) Soylatte" JDKS[$n]=$SOYLATTE_HOME n=$[ $n + 1 ] echo " $n) None" JDKS[$n]=None total_jdks=$n if [ $total_jdks -gt 1 ]; then while [ -z "${JDKS[$choice]}" ]; do echo -n "Choose one of the above [1-$total_jdks]: " read choice done else choice=1 fi if [ -z "$currjdk" ]; then currjdk=$(dirname $(dirname $(type -path java))) fi if [ ${JDKS[$choice]} != None ]; then export JAVA_HOME=${JDKS[$choice]} else unset JAVA_HOME fi explicit_jdk= for jdk in ${JDKS[*]}; do if [ "$currjdk" = "$jdk" ]; then explicit_jdk=$jdk break fi done if [ "$explicit_jdk" ]; then if [ -z "$JAVA_HOME" ]; then PATH=$(echo $PATH | sed "s|$explicit_jdk/bin:*||g") else PATH=$(echo $PATH | sed "s|$explicit_jdk|$JAVA_HOME|g") fi elif [ "$JAVA_HOME" ]; then PATH="$JAVA_HOME/bin:$PATH" fi hash -r unset JDKS }
This paste will be private.
From the Design Piracy series on my blog: