tadded debian-style initscript - coffin - secure lan file storage on a device
 (HTM) git clone git://parazyd.org/coffin.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit ebb5d5c4ec031e2a774a97301db08f918e6146cd
 (DIR) parent a86d46ab39d085fa2c5be3d737143a415a231476
 (HTM) Author: parazyd <parazyd@dyne.org>
       Date:   Tue, 29 Mar 2016 22:40:28 +0200
       
       added debian-style initscript
       
       Diffstat:
         M conf/config.sh                      |      23 +++++++++++++++++++++--
         A conf/initscript-deb                 |      95 ++++++++++++++++++++++++++++++
       
       2 files changed, 116 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/conf/config.sh b/conf/config.sh
       t@@ -50,8 +50,21 @@ edit-sudo() {
                fi
        }
        
       +update-init() {
       +        # TODO: rearrange this into another function and add other distros
       +        update-rc.d
       +}
       +
       +ckdistro() {
       +        which apt-get >/dev/null && distro=deb
       +        which emerge >/dev/null && distro=gentoo
       +}
       +
        # because all cool software has snowmen in them
        [[ $1 == "snowman" ]] && {
       +        # NOTE: remember to set this; see update-init()
       +        # ckdistro
       +        distro=deb
                pushd `pwd`/conf
        
                groupadd coffin && print "created coffin group"
       t@@ -94,10 +107,12 @@ edit-sudo() {
                edit-sudo add
        
                install -Dm770 -g coffin -d /home/graveyard
       +        install -Dm755 initscript-$distro /etc/init.d/coffin
        
       -        # TODO: add initscript
       +        update-init
        
                print "Successfully installed and configured coffin!"
       +        print "You can start it with '/etc/init.d/coffin start'"
        
                print "######################################"
                fprint=`openssl x509 -noout -in coffin.pem -fingerprint \
       t@@ -105,6 +120,7 @@ edit-sudo() {
                print "The fingerptint of your SSL certificate is: $fprint"
                print "Compare it and/or set is as trusted when you connect to coffin."
                print "######################################"
       +        print ""
        
                popd
                return 0
       t@@ -115,7 +131,7 @@ edit-sudo() {
                print "Uninstalling coffin. Why? Why? Why?"
                print "*cries*\n"
        
       -        # /etc/init.d/coffin stop
       +        /etc/init.d/coffin stop
        
                # uncomment if you wish to revert apache
                #revert=true
       t@@ -146,4 +162,7 @@ edit-sudo() {
                rm -v src/tomb-kdb-pbkdf2-gensalt
                rm -v src/tomb-kdb-pbkdf2-getiter
                rm -v src/tomb
       +        rm -v /etc/init.d/coffin
       +
       +        update-init
        }
 (DIR) diff --git a/conf/initscript-deb b/conf/initscript-deb
       t@@ -0,0 +1,95 @@
       +#!/bin/bash
       +
       +### BEGIN INIT INFO
       +# Provides:          coffin
       +# Required-Start:    $local_fs $network $
       +# Required-Stop:     $remote_fs $syslog
       +# Default-Start:     2 3 4 5
       +# Default-Stop:      0 1 6
       +# Short-Description: Example initscript
       +# Description:       This file should be used to construct scripts to be
       +#                    placed in /etc/init.d.  This example start a
       +#                    single forking daemon capable of writing a pid
       +#                    file.  To get other behavoirs, implemend
       +#                    do_start(), do_stop() or other functions to
       +#                    override the defaults in /lib/init/init-d-script.
       +### END INIT INFO
       +
       +# Author: parazyd <parazyd@dyne.org>
       +
       +DAEMON=/usr/src/coffin/run/coffin
       +NAME=coffin
       +DESC="coffin daemon"
       +COFFINPIDDIR=/usr/src/coffin/run
       +COFFINPID=$COFFINPIDDIR/coffin.pid
       +WAITFORDAEMON=20
       +
       +text -x $DAEMON || exit 0
       +
       +wait-for-dead-daemon() {
       +        pid=$1
       +        sleep 1
       +        if test -n "$pid"; then
       +                if kill -0 $pid 2>/dev/null ; then
       +                        cnt=0
       +                        while kill -0 $pid 2>/dev/null ; do
       +                                cnt=`expt $cnt + 1`
       +                                if [ $cnt -gt $WAITFORDAEMON ]; then
       +                                        log_action_end_msg 1 "still running"
       +                                        exit 1
       +                                fi
       +                                sleep 1
       +                                [ "`expt $cnt % 3`" != 2 ] || log_action_cont_msg ""
       +                        done
       +                fi
       +        fi
       +        log_action_end_msg 0
       +}
       +
       +case "$1" in
       +        start)
       +                log_action_begin_msg "Starting $DESC"
       +
       +                if start-stop-daemon --stop --signal 0 --quiet --pidfile $COFFINPID --exec $DAEMON; then
       +                        log_action_end_msg 0 "already running"
       +                else
       +                        if start-stop-daemon --start --quiet \
       +                                --pidfile $COFFINPID \
       +                                --exec $DAEMON --
       +                        then
       +                                log_action_end_msg 0
       +                        else
       +                                log_action_end_msg 1
       +                                exit 1
       +                        fi
       +                fi
       +                ;;
       +        stop)
       +                log_daemon_msg "Stopping $DESC"
       +                pid=`cat $COFFINPID 2>/dev/null` || true
       +
       +                if test ! -f $COFFINPID -o -z "$pid"; ten
       +                        log_action_end_msg 0 "not running - there is no $COFFINPID"
       +                        exit 0
       +                fi
       +
       +                if start-stop-daemon --stop --signal INT --quiet --pidfile $TORPID --exec $DAEMON; then
       +                        wait-for-dead-daemon $pid
       +                elif kill -0 $pid 2>/dev/null; then
       +                        log_action_end_msg 1 "is $pid not $NAME? is $DAEMON a different binary now?"
       +                        exit 1
       +                else
       +                        log_action_end_msg 1 "$DAEMON died: process $pid not running; or permission denied"
       +                        exit 1
       +                fi
       +                ;;
       +        restart)
       +                $0 stop
       +                sleep 1
       +                $0 start
       +                ;;
       +esac
       +
       +exit 0
       +
       +# vim: syntax=sh ts=4 sw=4 sts=4 sr noet