93 lines
1.7 KiB
Bash
93 lines
1.7 KiB
Bash
#!/bin/sh
|
|
# Start/stop/restart Gitea daemon.
|
|
|
|
. /etc/default/gitea
|
|
|
|
__start() {
|
|
echo "Starting Gitea daemon: /usr/sbin/gitea"
|
|
|
|
if [ -z $GITEAUSER ]; then
|
|
echo "Please set user to run gitea as, usually, git"
|
|
exit 1
|
|
fi
|
|
|
|
getent passwd $GITEAUSER 1>/dev/null 2>/dev/null
|
|
|
|
if [ $? != 0 ]; then
|
|
echo "No user $GITEAUSER mentioned in /etc/default/gitea"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$PIDFILE" ]; then
|
|
echo "Please set PIDFILE in /etc/default/gitea"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d $(dirname $PIDFILE) ]; then
|
|
mkdir -p $(dirname $PIDFILE)
|
|
chown -R $GITEAUSER:root $(dirname $PIDFILE)
|
|
fi
|
|
|
|
if [ -z "$CONFIG" ]; then
|
|
echo "Please set full path to gitea config in /etc/default/gitea"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -f "$PIDFILE" ]; then
|
|
echo "Gitea daemon is already running as PID $(< ${PIDFILE}) " >&2
|
|
exit 3
|
|
fi
|
|
|
|
if [ ! -d $(dirname $PIDFILE) ]; then
|
|
install -d -m 0755 -o $GITEAUSER "$(basename $PIDFILE)"
|
|
fi
|
|
|
|
if [ ! -d $(dirname $LOG) ]; then
|
|
mkdir -p $(dirname $LOG)
|
|
fi
|
|
|
|
chown -R $GITEAUSER "$(dirname $LOG)"
|
|
|
|
exec sudo -b -u $GITEAUSER -- /usr/sbin/gitea web \
|
|
--config "$CONFIG" \
|
|
--pid "$PIDFILE" \
|
|
--custom-path "$CUSTOMDIR" \
|
|
--work-path "$WORKDIR" >> /dev/null 2>&1
|
|
}
|
|
|
|
__stop() {
|
|
# do you know not so racy way here?
|
|
if [ -f "$PIDFILE" ]; then
|
|
kill $(cat ${PIDFILE})
|
|
rm -f "${PIDFILE}"
|
|
else
|
|
echo "Gitea daemon is not running"
|
|
fi
|
|
}
|
|
|
|
__restart() {
|
|
__stop
|
|
# pidfile being deleted immediately after sending SIGTERM to gitea process
|
|
# so we have to wait 'till it leave network socket alone
|
|
sleep 3
|
|
__start
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
'start')
|
|
__start
|
|
;;
|
|
'stop')
|
|
__stop
|
|
;;
|
|
'restart')
|
|
__restart
|
|
;;
|
|
*)
|
|
echo "usage $0 start|stop|restart"
|
|
exit 2
|
|
esac
|
|
|
|
# vim: ft=sh noet ai ts=4 sw=4 sts=4:
|