b7263f31a5
Still use GOGS_WORK_DIR and GOGS_CUSTOM env variables as a fallback if the equivalent GITEA_* are not set, warning user about the need for change. Does not change "gogs" to "gitea" in webhook type name Because "gogs" hook type is part of the API (routes) and used in templates... Closes #87
116 lines
2.7 KiB
Bash
116 lines
2.7 KiB
Bash
#!/bin/sh
|
|
#
|
|
# /etc/init.d/gogs
|
|
#
|
|
# Runs the Gogs Go Git Service.
|
|
#
|
|
|
|
### BEGIN INIT INFO
|
|
# Provides: gogs
|
|
# Required-Start: $remote_fs
|
|
# Required-Stop: $remote_fs
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: Start gogs at boot time.
|
|
# Description: Control gogs.
|
|
### END INIT INFO
|
|
|
|
# Default values
|
|
|
|
NAME=gogs
|
|
GITEA_HOME=/home/git/gogs
|
|
GITEA_PATH=${GITEA_HOME}/$NAME
|
|
GITEA_USER=git
|
|
SERVICENAME="Go Git Service"
|
|
LOCKFILE=/var/lock/subsys/gogs
|
|
LOGPATH=${GITEA_HOME}/log
|
|
LOGFILE=${LOGPATH}/error.log
|
|
# gogs creates its own gogs.log from stdout
|
|
RETVAL=0
|
|
|
|
# Read configuration from /etc/sysconfig/gogs to override defaults
|
|
[ -r /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME
|
|
|
|
# Don't do anything if nothing is installed
|
|
test -x ${GITEA_PATH} || { echo "$NAME not installed";
|
|
if [ "$1" = "stop" ]; then exit 0;
|
|
else exit 5; fi; }
|
|
|
|
# exit if logpath dir is not created.
|
|
test -r ${LOGPATH} || { echo "$LOGPATH not existing";
|
|
if [ "$1" = "stop" ]; then exit 0;
|
|
else exit 6; fi; }
|
|
|
|
# Source function library.
|
|
. /etc/rc.status
|
|
|
|
# Reset status of this service
|
|
rc_reset
|
|
|
|
|
|
case "$1" in
|
|
start)
|
|
echo -n "Starting ${SERVICENAME} "
|
|
|
|
# As we can't use startproc, we have to check ourselves if the service is already running
|
|
/sbin/checkproc ${GITEA_PATH}
|
|
if [ $? -eq 0 ]; then
|
|
# return skipped as service is already running
|
|
(exit 5)
|
|
else
|
|
su - ${GITEA_USER} -c "USER=${GITEA_USER} ${GITEA_PATH} web 2>&1 >>${LOGFILE} &"
|
|
fi
|
|
|
|
# Remember status and be verbose
|
|
rc_status -v
|
|
;;
|
|
|
|
stop)
|
|
echo -n "Shutting down ${SERVICENAME} "
|
|
|
|
## Stop daemon with killproc(8) and if this fails
|
|
## killproc sets the return value according to LSB.
|
|
/sbin/killproc ${GITEA_PATH}
|
|
|
|
# Remember status and be verbose
|
|
rc_status -v
|
|
;;
|
|
|
|
restart)
|
|
## Stop the service and regardless of whether it was
|
|
## running or not, start it again.
|
|
$0 stop
|
|
$0 start
|
|
|
|
# Remember status and be quiet
|
|
rc_status
|
|
;;
|
|
|
|
status)
|
|
echo -n "Checking for ${SERVICENAME} "
|
|
## Check status with checkproc(8), if process is running
|
|
## checkproc will return with exit status 0.
|
|
|
|
# Return value is slightly different for the status command:
|
|
# 0 - service up and running
|
|
# 1 - service dead, but /var/run/ pid file exists
|
|
# 2 - service dead, but /var/lock/ lock file exists
|
|
# 3 - service not running (unused)
|
|
# 4 - service status unknown :-(
|
|
# 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
|
|
|
|
# NOTE: checkproc returns LSB compliant status values.
|
|
/sbin/checkproc ${GITEA_PATH}
|
|
# NOTE: rc_status knows that we called this init script with
|
|
# "status" option and adapts its messages accordingly.
|
|
rc_status -v
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: $0 {start|stop|status|restart}"
|
|
exit 1
|
|
;;
|
|
|
|
esac
|
|
rc_exit
|