#!/bin/bash # # RedHat: /etc/rc.d/init.d/gitbucket # Ubuntu: /etc/init.d/gitbucket # Mac OS/X: /Library/StartupItems/GitBucket # # Starts the GitBucket server # # chkconfig: 345 60 40 # description: Run GitBucket server # processname: java set -e [ -f /etc/rc.d/init.d/functions ] && source /etc/rc.d/init.d/functions # RedHat [ -f /etc/rc.common ] && source /etc/rc.common # Mac OS/X # Default values GITBUCKET_HOME=/var/lib/gitbucket GITBUCKET_WAR_FILE=/usr/share/gitbucket/lib/gitbucket.war # Pull in cq settings [ -f /etc/sysconfig/gitbucket ] && source /etc/sysconfig/gitbucket # RedHat [ -f gitbucket.conf ] && source gitbucket.conf # For all systems # Location of the log and PID file LOG_FILE=$GITBUCKET_LOG_DIR/run.log PID_FILE=/var/run/gitbucket.pid RED='\033[1m\E[37;41m' GREEN='\033[1m\E[37;42m' OFF='\E[0m' if [ -z "$(which success)" ]; then function success { printf "%b\n" "$GREEN $* $OFF" } fi if [ -z "$(which failure)" ]; then function failure { printf "%b\n" "$RED $* $OFF" } fi RETVAL=0 start() { echo -n $"Starting GitBucket server: " START_OPTS= if [ $GITBUCKET_PORT ]; then START_OPTS="${START_OPTS} --port=${GITBUCKET_PORT}" fi if [ $GITBUCKET_PREFIX ]; then START_OPTS="${START_OPTS} --prefix=${GITBUCKET_PREFIX}" fi if [ $GITBUCKET_HOST ]; then START_OPTS="${START_OPTS} --host=${GITBUCKET_HOST}" fi GITBUCKET_HOME="${GITBUCKET_HOME}" java $GITBUCKET_JVM_OPTS -jar $GITBUCKET_WAR_FILE $START_OPTS >>$LOG_FILE 2>&1 & RETVAL=$? echo $! > $PID_FILE if [ $RETVAL -eq 0 ] ; then success "Success" else failure "Exit code $RETVAL" fi echo return $RETVAL } stop() { echo -n $"Stopping GitBucket server: " # Run the Java process kill $(cat $PID_FILE 2>/dev/null) >>$LOG_FILE 2>&1 RETVAL=$? if [ $RETVAL -eq 0 ] ; then rm -f $PID_FILE success "GitBucket stopping" else failure "GitBucket stopping" fi echo return $RETVAL } restart() { stop start } ## MacOS proxies for System V service hooks: StartService() { start } StopService() { stop } RestartService() { restart } if [ `isMac` ]; then RunService "$1" else case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status -p $PID_FILE java RETVAL=$? ;; *) echo $"Usage: $0 [start|stop|restart|status]" RETVAL=2 esac exit $RETVAL fi