0
Files
slackbuilds/gitea/gitea.init
2023-11-19 18:01:40 +03:00

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: