#!/bin/sh

########## ##########
########## ##########
##      ## ##
##         ##
##         ##         - RC BOOT SCRIPTS MANAGER FOR SIMPLE LINUX 
##         ##         - AUTHOR -- TOLA MIRONCENKO
##         ##
##         ##
##         ##########
##         ##########

rootdir=/Users/anatolijmironcenko/Documents/cpp/openrouter/rootfs

#------------------------ add to boot function --------------
add() {
    resultlink=$(cat /usr/share/rc/ordernumbers | grep $1)
    if [ -f /etc/init.d/$1 ] && [ $resultlink ]; then
        cd /etc/rc.d 
        ln -sv ../init.d/$1 "$resultlink" &> /dev/null
        echo "added $1 to init."
    else
        help
    fi
}
#------------------------------------------------------------

#--------------------- del from boot function ---------------
del() {
    filetoremove=$(find /etc/rc.d/ | grep $1 )
    if [ $filetoremove ]; then
        rm -v $filetoremove &> /dev/null
        echo "removed $1 from init."
    else
        help
    fi
}
#------------------------------------------------------------

#---------------------- start daemon function ---------------
start() {
    if [ -f /etc/init.d/$1 ]; then
        /etc/init.d/$1 start
    else
        help
    fi
}
#------------------------------------------------------------

#---------------- stop daemon function ----------------------
stop() {
    if [ -f /etc/init.d/$1 ]; then
        /etc/init.d/$1 stop
    else
        help
    fi
}
#------------------------------------------------------------

#------------- restart daemon function ----------------------
restart() {
    if [ -f /etc/init.d/$1 ]; then
        /etc/init.d/$1 restart
    else
        help
    fi
}
#------------------------------------------------------------

#------------------ list services ---------------------------
list() {
    ls --color $rootdir/etc/init.d
}
#------------------------------------------------------------

#------------------ list enabled services -------------------
bootlist() {
    ls --color $rootdir/etc/rc.d
}
#------------------------------------------------------------

#-------------- print help function -------------------------
help() {
    echo "
            ** rc usage:
            rc add [init.d script name] - add service on boot
            rc del [init.d script name] - delete service from boot
            rc start [init.d script name] - start service
            rc stop [init.d script name] - stop service
            rc restart [init.d script name] - restart service
            rc list - list all services
            rc bootlist - list enabled services

            examples:
            rc add httpd
            rc del httpd  
            rc start httpd
            rc stop httpd
            rc restart httpd
            rc list
            rc bootlist
        "
}
#------------------------------------------------------------

command="$1"

case ${command} in
    add)
        add $2 $3
        ;;
    del)
        del $2
        ;;
    start)
        start $2
        ;;
    stop)
        stop $2
        ;;
    restart)
        restart $2
        ;;
    list)
        list
        ;;
    bootlist)
        bootlist
        ;;
    *)
        help
        ;;
esac
