I thought I'd use some of the goodness we've come up with in my home environment too, so have put together a much-scaled-down version of our launch script, for my personal use - and thought I'd share this more broadly, as I'm sure other folks will find this useful too.
I generally have multiple installation and user configuration profiles, and even from the desktop launcher, I much prefer to use launch scripts than just pointing the shortcut to the binary executable.
Here is my generic configuration script:
#!/bin/bash # # Runs the stable version of Eclipse. # By default, it will launch Indigo, installed in /opt/eclipse; different # versions can be launched by invoking this script and setting the # ECLIPSE_INSTALL and CONFIG variables to point to the correct places. # # The default configuration directory is set to '/home/$USER/.eclipse/eclipse37' # but this can be changed exporting a different value for CONFIG. # See /home/marco/bin/eclipse-helios for an example of how to do this. ############################## # Globals (default value): # # LD_LIBRARY_PATH (/usr/local/lib:/usr/lib) # library search path for C++ dynamic libraries # # ECLIPSE_INSTALL () # installation directory # # CONFIG () # user's configuration directory # # MEM_ALLOC_POOL, PERM_SIZE (2,048MB, 256MB) # Memory allocation and PermGen size # # JVM (/usr/local/java/bin/java) # Java VM executable (java) # # By setting any of the variables above after source`ing this script # and before invoking launch_eclipse() the default value(s) can be changed ############################## declare ECLIPSE_INSTALL declare CONFIG declare MEM_ALLOC_POOL declare PERM_SIZE declare JVM="/usr/local/java/bin/java" ############################## # Concatenates input paramters to LD_LIBRARY_PATH, if not already present ############################## munge_library_path() { for dir in $@; do if [ -n "${dir}" ]; then local is_present=`echo $LD_LIBRARY_PATH | grep ${dir} | wc -l` if [ ${is_present} -eq 0 ]; then export LD_LIBRARY_PATH=${dir}:$LD_LIBRARY_PATH fi fi done } ############################## # Sets up global variables with default values if not already set ############################## check_dirs() { # Installation directory if [ -z "${ECLIPSE_INSTALL}" ]; then echo "You must set ECLIPSE_INSTALL to the Eclipse installation directory" exit -1 fi if [ ! -d ${ECLIPSE_INSTALL} ]; then echo "Cannot find Eclipse installation directory (${ECLIPSE_INSTALL})" exit -1 fi # Configuration directory, user-specific if [ ! -d "${CONFIG}" ]; then mkdir -p ${CONFIG} fi } ############################## # The location of the JVM, currently the default (OpenJDK 6) ############################## locate_jvm() { if [ ! -e "${JVM}" ]; then echo "Could not locate a valid JVM at ${JVM}" echo "Trying to locate a valid java installation" JVM=`which java` if [ -z "${JVM}" ]; then echo "Could not find a valid JRE, giving up" return -1 fi echo "Found a JRE at ${JVM}" fi } ############################## # Runs a few checks, sets up the LD library path and then launches Eclipse # # Param: # clean will set the '-clean' Eclipse option that will clear the plugins cache ############################## launch_eclipse() { check_dirs locate_jvm munge_library_path /usr/local/lib /usr/lib if [ "$1" == "clean" ]; then CLEAN="-clean" fi $ECLIPSE_INSTALL/eclipse $CLEAN -vm $JVM -configuration $CONFIG \ -bundlepool $CONFIG/plugins \ -vmargs -Xmx${MEM_ALLOC_POOL:-"2048M"} -XX:MaxPermSize=${PERM_SIZE:-"256M"} }This is used in the actual shell script (called, unimaginatively, eclipse):
#!/bin/bash # # Runs the stable version of Eclipse. # By default, it will launch Indigo, installed in /opt/eclipse; different # versions can be launched by invoking this script and setting the # ECLIPSE_INSTALL and CONFIG variables to point to the correct places. # # See eclipse_config.sh for more details source /home/marco/bin/eclipse_config.sh ECLIPSE_INSTALL="/opt/eclipse" CONFIG="/home/${USER}/.eclipse/eclipse37" launch_eclipse
What is left is to just point a desktop (or menu) launcher to this script and replace the generic icon with the one in the eclipse/ folder (icon.xpm)
CREDITS -- I would very much like to gratefully acknowledge Machtelt Garrels and his much-consulted "Bash Guide for Beginners;" I never seem able to remember the bash conditional operators!
No comments:
Post a Comment