# *********************************************************************************** # Written by Shawn Erickson - shawn at freetimesw.com # # Feel free to use as you like but at your own risk :) # # Last Update: 2005y 08m 25d, 1:15 PM PST # # The following functions are meant for use with bash shell which is currently the # default on Mac OS X 10.4 (starting with 10.3 IIRC) unless otherwise configured. # # If your shell is already set to use BASH then skip to install steps below. # If you don't know what shell you are using by default then open a terminal # window and type "echo $SHELL" and hit return. If it lists "/bin/bash" then # you are using bash by default. If not you have the option of changing the # default in terminal, globally for your user, or on demand. # # Terminal.app default... # ...todo... # # Globally for user... # ...todo... # # On demand... # ...todo... # # How to "install"... # ...todo... # # *********************************************************************************** ### Prompt ### export CURRENT_MODE_STRING=""; function defaultPrompt() { _defaultPrompt() { CURRENT_MODE=$(echo $CURRENT_MODE_STRING) } PROMPT_COMMAND=_defaultPrompt PS1="[\h:\$CURRENT_MODE:\w]\n> " } defaultPrompt ### Java Environment Functions ### J_VERSIONS_DIRECTORY="/System/Library/Frameworks/JavaVM.framework/Versions" J_COMMANDS_SUBPATH="Commands" J_HOME_SUBPATH="Home" function availableJVMs() { ls -1 $J_VERSIONS_DIRECTORY | grep ^[0-9].[0-9] } function listJava() { local jvms=$(availableJVMs) echo "Available JVMs: "$jvms echo "Current Java:" java -version } function setJava() { local target_jvm="" local jvms=$(availableJVMs) # Validate that the user requested an available JVM present on the system for jvm in $jvms ; do if [ "$jvm" == "$@" ]; then target_jvm=$@ fi done if [ "$target_jvm" == "" ]; then echo "Unsupported Java version requested" return; fi # If we get here the user asked for a valid JVM, so configure it echo "Configuring Shell Environment for Java "$@ # First unset any current set java, back to default before doing configuration _unsetJava # Generate the paths needed for the JVM requested local jcmd="${J_VERSIONS_DIRECTORY}/$@/${J_COMMANDS_SUBPATH}" local jhome="${J_VERSIONS_DIRECTORY}/$@/${J_HOME_SUBPATH}" # We save the original path so we can toggle back if unset ORIGINAL_PATH="$PATH" PATH="$jcmd:${PATH}" # We save the original JAVA_HOME so we can toggle back if unset ORIGINAL_JAVA_HOME="$JAVA_HOME" JAVA_HOME="$jhome" # Update command prompt mode tag to note JVM setting CURRENT_MODE_STRING="J$@" echo "Current Java:" java -version } function _unsetJava() { if [ "$CURRENT_MODE_STRING" != "" ]; then PATH="$ORIGINAL_PATH" JAVA_HOME="$ORIGINAL_JAVA_HOME" CURRENT_MODE_STRING="" fi } function unsetJava() { echo "Configuring Shell Environment for default Java" _unsetJava echo "Current Java:" java -version }