Package: git-daemon-run Severity: wishlist Tags: patch
Hi, what do you think about changing the git-daemon-run package to use a standard init.d script? Many of us don't like to depend on runit only for one package. Maybe this package can be kept and renamed in git-daemon-runit and the default init.d script could even be provided by git-core itself. I am attaching the script I am using on my machine, it is based on /etc/init.d/skeleton and use a /etc/default/git-daemon file for user customizations. Feel free to take it and do whatever you want with it. Regards, Antonio -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (900, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.30-1-686 (SMP w/1 CPU core) Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages git-daemon-run depends on: ii adduser 3.110 add and remove users and groups ii git-core 1:1.6.3.3-2 fast, scalable, distributed revisi pn runit <none> (no description available) git-daemon-run recommends no packages. git-daemon-run suggests no packages.
#! /bin/sh ### BEGIN INIT INFO # Provides: git-daemon # Required-Start: $network $remote_fs $syslog # Required-Stop: $network $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: git-daemon service # Description: git-daemon makes git repositories available via the git # protocol. ### END INIT INFO # Author: Antonio Ospite <osp...@studenti.unina.it> # # Please remove the "Author" lines above and replace them # with your own name if you copy and modify this script. # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/lib/git-core DESC="git-daemon service" NAME=git-daemon DAEMON=/usr/lib/git-core/$NAME PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Fallback options values, we use these when # the /etc/default/git-daemon file does not exist RUN=no USER=gitosis GROUP=gitosis REPOSITORIES="/srv/gitosis/repositories/" # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # If ADVANCED_OPTS is empty, use a default setting if [ "x$ADVANCED_OPTS" == "x" ]; then ADVANCED_OPTS="--base-path=$REPOSITORIES $REPOSITORIES" fi DAEMON_ARGS="--syslog --reuseaddr \ --user=$USER --group=$GROUP \ $ADVANCED_OPTS" # Load the VERBOSE setting and other rcS variables .. /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. .. /lib/lsb/init-functions # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile -- \ $DAEMON_ARGS \ || return 2 return 0 } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac :
# Defaults for the git-daemon initscript # Set to yes to start git-daemon RUN=no # Set to the user and group git-daemon should run as USER=gitosis GROUP=gitosis # Set the base path and the directory where the repositories are. REPOSITORIES="/srv/gitosis/repositories/" # Provide a way to have custom setup. # # Note, when ADVANCED_OPTS is defined the REPOSITORIES setting is ignored, # so take good care to specify exactly what git-daemon have to do. # # Here is an example from the man page: #ADVANCED_OPTS="--verbose --export-all \ # --interpolated-path=/pub/%IP/%D \ # /pub/192.168.1.200/software \ # /pub/10.10.220.23/software"