Ralf,

Using your nohup trick, I cooked up an rc.subversion that takes care of the
svnserve process.  I have setup the process to run as l_musr instead of
root because I see no reason to run this daemon as root.  

You should be able to add in the l_musr and l_prefix in a few spots and
commit this.

Thanks,
Aaron

#!/opkg/lib/openpkg/bash /opkg/etc/rc
##
##  rc.subversion -- Run-Commands
##

%config
    subversion_enable="$openpkg_rc_def"
    subversion_env="no"
    subversion_daemon="yes"
    subversion_daemon_host="127.0.0.1"
    subversion_daemon_port="3690"
    subversion_daemon_root="/opkg/var/subversion"

%common
    subversion_svnserve_pidfile="/opkg/var/subversion/svnserve.pid"
    subversion_signal () {
        [ -f $subversion_svnserve_pidfile ] \
        && kill -$1 `cat $subversion_svnserve_pidfile`
    }

%status -u opkg -o
    subversion_usable="unknown"
    subversion_active="no"
    rcService subversion enable yes && \
        subversion_signal 0 && subversion_active="yes"
    echo "subversion_enable=\"$subversion_enable\""
    echo "subversion_usable=\"$subversion_usable\""
    echo "subversion_active=\"$subversion_active\""

%start -p 100 -u opkg
    rcService subversion enable yes || exit 0
    rcService subversion active yes && exit 0
    if rcVarIsYes subversion_daemon; then
        if [ ".$subversion_daemon_root" != . ]; then
            ( nohup /opkg/bin/svnserve --daemon --foreground \
                  --listen-host $subversion_daemon_host \
                  --listen-port $subversion_daemon_port \
                  --root $subversion_daemon_root \
                  </dev/null >/dev/null 2>&1 &
              echo "$!" >$subversion_svnserve_pidfile
            ) >/dev/null 2>&1
        fi
    fi

%stop -p 100 -u opkg
    rcService subversion enable yes || exit 0
    rcService subversion active no  && exit 0
    subversion_signal TERM
    sleep 2
    rm -f $subversion_svnserve_pidfile 2>/dev/null || true

%restart -u root
    rcService subversion enable yes || exit 0
    rcService subversion active no  && exit 0
    rc subversion stop start

%env
    rcService subversion enable yes || exit 0
    if rcVarIsYes subversion_env; then
        if [ ".$BASH" != . ]; then
            shopt -s extglob progcomp
            . /opkg/etc/subversion/subversion.bash
        fi
    fi

Reply via email to