aboutsummaryrefslogtreecommitdiff
path: root/mail/james/files/james.in
diff options
context:
space:
mode:
Diffstat (limited to 'mail/james/files/james.in')
-rw-r--r--mail/james/files/james.in178
1 files changed, 178 insertions, 0 deletions
diff --git a/mail/james/files/james.in b/mail/james/files/james.in
new file mode 100644
index 000000000000..838ae5f61443
--- /dev/null
+++ b/mail/james/files/james.in
@@ -0,0 +1,178 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+#
+# Configuration settings for geronimo%%GERONIMO_VERSION%% in /etc/rc.conf:
+#
+# james%%JAMES_VERSION%%_enable (bool):
+# Set to "NO" by default.
+# Set it to "YES" to enable james%%JAMES_VERSION%%
+#
+#
+# james%%JAMES_VERSION%%_home (str)
+# Set to "%%JAMES_HOME%%" by default.
+# Set the JAMES_HOME variable for the James process
+#
+# james%%JAMES_VERSION%%_base (str)
+# Set to "%%JAMES_HOME%%" by default.
+# Set the JAMES_BASE variable for the James process
+#
+# james%%JAMES_VERSION%%_tmpdir (str)
+# Set to "/tmp" by default.
+#
+# geronimo%%GERONIMO_VERSION%%_stop_timeout (num)
+# Set to "10" by default.
+# Sets the timeout in seconds to allow geronimo to shutdown.
+# After the timeout has elapsed, geronimo will be killed.
+#
+# james%%JAMES_VERSION%%_java_home (str):
+# james%%JAMES_VERSION%%_java_vendor (str):
+# james%%JAMES_VERSION%%_java_version (str):
+# james%%JAMES_VERSION%%_java_os (str):
+# Specify the requirements of the Java VM to use. See javavm(1).
+#
+# james%%JAMES_VERSION%%_classpath (str):
+# Set to "" by default.
+# Addtional classes to add to the CLASSPATH
+#
+# james%%JAMES_VERSION%%_java_opts (str):
+# Set to "" by default.
+# Java VM args to use.
+#
+
+james%%JAMES_VERSION%%_enable="${james%%JAMES_VERSION%%_enable:-"NO"}"
+james%%JAMES_VERSION%%_java_version="${james%%JAMES_VERSION%%_java_version:-"%%JAVA_VERSION%%"}"
+james%%JAMES_VERSION%%_home="${james%%JAMES_VERSION%%_home:-"%%JAMES_HOME%%"}"
+james%%JAMES_VERSION%%_base="${james%%JAMES_VERSION%%_base:-"%%JAMES_HOME%%"}"
+james%%JAMES_VERSION%%_tmpdir="${james%%JAMES_VERSION%%_tmpdir:-"/tmp"}"
+james%%JAMES_VERSION%%_stop_timeout="${james%%JAMES_VERSION%%_stop_timeout:-"10"}"
+
+. /etc/rc.subr
+
+name="james%%JAMES_VERSION%%"
+rcvar=james%%JAMES_VERSION%%_enable
+pidfile="%%PID_FILE%%"
+
+JAVA_HOME=%%JAVA_HOME%%
+JRE_HOME=$JAVA_HOME/jre
+
+JVM_EXT_DIRS="${james%%JAMES_VERSION%%_home}/lib:${james%%JAMES_VERSION%%_home}/tools/lib"
+JVM_OPTS="-Djava.ext.dirs=$JVM_EXT_DIRS"
+
+load_rc_config "${name}"
+
+if [ -n "${james%%JAMES_VERSION%%_java_home}" ] ; then
+ export JAVA_HOME="${james%%JAMES_VERSION%%_java_home}"
+fi
+
+if [ -n "${james%%JAMES_VERSION%%_java_version}" ] ; then
+ export JAVA_VERSION="${james%%JAMES_VERSION%%_java_version}"
+fi
+
+if [ -n "${james%%JAMES_VERSION%%_java_vendor}" ] ; then
+ export JAVA_VENDOR="${james%%JAMES_VERSION%%_java_vendor}"
+fi
+
+if [ -n "${james%%JAMES_VERSION%%_java_os}" ] ; then
+ export JAVA_OS="${james%%JAMES_VERSION%%_java_os}"
+fi
+
+if [ "$JAVA_HOME" = "" ] ; then
+ echo "ERROR: JAVA_HOME not found in your environment."
+ echo
+ echo "Please, set the JAVA_HOME variable in your environment to match the"
+ echo "location of the Java Virtual Machine you want to use."
+ exit 1
+fi
+
+if [ -z "${james%%JAMES_VERSION%%_tmpdir}" ] ; then
+ # Define the java.io.tmpdir to use for Phoenix
+ james%%JAMES_VERSION%%_tmpdir="${james%%JAMES_VERSION%%_home}"/temp
+ mkdir -p "${james%%JAMES_VERSION%%_tmpdir}"
+fi
+
+java_cmd=
+if [ -z "${JAVA_HOME}" ] ; then
+ java_cmd=%%LOCALBASE%%/bin/java
+else
+ java_cmd=${JAVA_HOME}/bin/java
+fi
+
+
+java_command="$java_cmd $JVM_OPTS \
+ -Djava.security.policy=jar:file:${james%%JAMES_VERSION%%_home}/bin/phoenix-loader.jar!/META-INF/java.policy \
+ -Dphoenix.home=${james%%JAMES_VERSION%%_home} \
+ -Djava.io.tmpdir=${james%%JAMES_VERSION%%_tmpdir} \
+ -jar ${james%%JAMES_VERSION%%_home}/bin/phoenix-loader.jar >/dev/null"
+
+PHOENIX_CONSOLE="$PHOENIX_TMPDIR/phoenix.console"
+if [ -z "$PHOENIX_CONSOLE" ]
+then
+ if [ -w /dev/console ]
+ then
+ PHOENIX_CONSOLE=/dev/console
+ else
+ PHOENIX_CONSOLE=/dev/tty
+ fi
+fi
+
+
+# Subvert the check_pid_file procname check.
+if [ -f $pidfile ]; then
+ read rc_pid junk < $pidfile
+ if [ ! -z "$rc_pid" ]; then
+ procname=`ps -o ucomm= $rc_pid`
+ fi
+fi
+
+command="/usr/sbin/daemon"
+flags="-p ${pidfile} ${java_command}"
+
+start_precmd=pid_touch
+stop_cmd="james%%JAMES_VERSION%%_stop"
+
+pid_touch ()
+{
+ touch $pidfile
+}
+
+james%%JAMES_VERSION%%_stop() {
+ rc_pid=$(check_pidfile $pidfile *$procname*)
+
+ if [ -z "$rc_pid" ]; then
+ [ -n "$rc_fast" ] && return 0
+ if [ -n "$pidfile" ]; then
+ echo "${name} not running? (check $pidfile)."
+ else
+ echo "${name} not running?"
+ fi
+ return 1
+ fi
+
+ echo "Stopping ${name}."
+ kill ${rc_pid}>/dev/null
+ james_wait_max_for_pid ${james%%JAMES_VERSION%%_stop_timeout} ${rc_pid}
+ kill -KILL ${rc_pid} 2> /dev/null && echo "Killed."
+ echo -n > ${pidfile}
+}
+
+james_wait_max_for_pid() {
+ _timeout=$1
+ shift
+ _pid=$1
+ _prefix=
+ while [ $_timeout -gt 0 ] ; do
+ echo -n ${_prefix:-"Waiting (max $_timeout secs) for PIDS: "}$_pid
+ _prefix=", "
+ sleep 2
+ kill -0 $_pid 2> /dev/null || break
+ _timeout=$(($_timeout-2))
+ done
+ if [ -n "$_prefix" ]; then
+ echo "."
+ fi
+}
+
+run_rc_command "$1"