+++ /dev/null
-#!/bin/sh
-# ianb@erislabs.net 20081202
-# configure a mir system for sun or gcj java
-# checkpoint code taken from zak's mir-setup
-
-set -e
-
-# NAME is used when called from mir-prepare
-NAME=""
-
-CUR_CHECKPOINT=0
-checkpoint()
-{
- CUR_CHECKPOINT=$(($CUR_CHECKPOINT + 1))
- if [ -n "$START_CHECKPOINT" ]; then
- if [ "$CUR_CHECKPOINT" -lt "$START_CHECKPOINT" ]; then
- echo "${NAME}Skipping checkpoint $CUR_CHECKPOINT: $@"
- unset RUNNING
- else
- echo "${NAME}Running from checkpoint $CUR_CHECKPOINT: $@"
- RUNNING=1
- fi
- else
- echo "${NAME}Checkpoint $CUR_CHECKPOINT: $@"
- RUNNING=1
- fi
-}
-
-optdie()
-{
- echo >&2 "$@";
- echo >&2 "Try $PROG --help";
- exit 1;
-}
-
-usage() {
- echo >&2 "Usage: $PROG [options] sun|gcj"
- echo >&2 " Configures java implementation to use with mir"
- echo >&2 " -d|--debug Debugging output, including 'set -x' shell trace"
- echo >&2 " -p|--checkpoint <start> Run from specified checkpoint after failed run"
- echo >&2 " sun Use Sun Java (non-free)"
- echo >&2 " gcj Use the GNU Java Compiler"
-}
-
-if [ $# -lt 1 ]
-then
- usage
- exit 1
-fi
-
-while [ $# != 0 ]; do
- case "$1" in
- -d|--debug) set -x; DEBUG=1 ;;
- -p|--checkpoint) shift; START_CHECKPOINT="$1" ;;
- --subprocess) NAME="[mir-choose-java] " ;;
- -h|-?|--help) usage; exit 0 ;;
- -*) optdie "$PROG: unknown option $1" ;;
- sun) JAVA=sun ; break;;
- gcj) JAVA=gcj ; break;;
- *) optdie "$PROG: unexpected argument '$1'" ;;
- esac
- shift
-done
-
-if [ $JAVA = sun ]
-then
- JAVANAME=java-6-sun
- PACKAGES="sun-java6-jdk sun-java6-jre"
- RTPATH=/usr/lib/jvm/java-6-sun/jre/lib/rt.jar
-else
- JAVANAME=java-gcj
- PACKAGES=gcj
- RTPATH=/usr/lib/jvm/java-1.5.0-gcj-4.3-1.5.0.0/jre/lib/rt.jar
-fi
-
-JAVAHOME="/usr/lib/jvm/$JAVANAME"
-
-if [ $JAVA = sun ]
-then
- checkpoint "Adding non-free archive for sun java"
- if [ -n "$RUNNING" ]
- then
- perl -pi.bak -e \
- 'if(/^deb/ && !/security\.debian\.org/ && !/non-free/) { s/(main)/$1 contrib non-free/; }' \
- /etc/apt/sources.list
- apt-get update
- fi
-else
- # so checkpoint numbers don't differ
- checkpoint "Skipping non-free archive configuration - gcj is in main"
-fi
-
-checkpoint "Installing packages"
-if [ -n "$RUNNING" ]
-then
- apt-get install $PACKAGES
- echo "You probably want to do 'apt-get clean'"
-fi
-
-checkpoint "Selecting JDK"
-if [ -n "$RUNNING" ]
-then
- update-java-alternatives --set $JAVANAME || true
-fi
-
-checkpoint "Configuring apache jakarta JVM"
-if [ -n "$RUNNING" ]
-then
- if grep -q '^workers.java_home' /etc/libapache2-mod-jk/workers.properties
- then
- perl -pi.bak -e 's,workers.java_home.*,workers.java_home='"$JAVAHOME"',;' \
- /etc/libapache2-mod-jk/workers.properties
- fi
-fi
-
-checkpoint "Configuring tomcat JVM"
-if [ -n "$RUNNING" ]
-then
- TOMCATDEFAULTS=/etc/default/tomcat5.5
- if grep -q '^#\?JAVA_HOME' $TOMCATDEFAULTS
- then
- perl -pi.bak -e 's,^\#?JAVA_HOME.*,JAVA_HOME='"$JAVAHOME"',;' $TOMCATDEFAULTS
- else
- echo "JAVA_HOME=$JAVAHOME" >> $TOMCATDEFAULTS
- fi
-fi
-
-checkpoint "Configuring /etc/mir-setup/lib/rt.jar symlink"
-if [ -n "$RUNNING" ]
-then
- mkdir -p /etc/mir-setup/lib
- ln -sf $RTPATH /etc/mir-setup/lib/rt.jar
-fi
-
-checkpoint "Restarting tomcat and apache"
-if [ -n "$RUNNING" ]
-then
- invoke-rc.d tomcat5.5 force-reload
- invoke-rc.d apache2 force-reload
-fi
-
-checkpoint "Finished!"