#!/bin/sh

source /usr/lib/scripts/err-log.sh

if [ "$SEP" == "" ] ; then
    source /usr/lib/scripts/vars.sh
fi

if [ "$SCRIPT_NAME" == "" ] ; then
    source /usr/lib/scripts/script-info.sh
fi

OPTIONS=""
ACTION=""
PROGNAME=""
FILEPATH=""
CODE=""
OLDCODE=""
NEWCODE=""
REBOOT=0
ACTION_REPL="replace"
ACTION_APPEND="append"
USAGE_STR="Usage: 
 $SCRIPT_NAME [options] $ACTION_APPEND  PROGNAME FILEPATH CODE
 $SCRIPT_NAME [options] $ACTION_REPL PROGNAME FILEPATH OLDCODE NEWCODE
$SEP"

ACTION="$1"
PROGNAME="$2"
FILEPATH="$3"

chk-cmd usage 2>/dev/null

if [ "$?" -ne "0" ] ; then
    source /usr/lib/scripts/opt.sh "$USAGE_STR"
fi



if [ ! -e "$REBOOT_FILE" ] ; then
    touch "$REBOOT_FILE"
    echo "$REBOOT" > "$REBOOT_FILE"
fi

echo "$SEP"

case "$ACTION" in
    "$ACTION_APPEND" | "$ACTION_REPL" )
        chk_arg_str "PROGNAME" "$PROGNAME"
        chk_arg_file "$FILEPATH"
        ;;
esac

case "$ACTION" in
    "$ACTION_APPEND" )
        CODE="$4"
        chk_arg_str "CODE" "$CODE"
        
        if [ "$(grep -c "^$CODE$" "$FILEPATH")" -eq "0" ] ; then
            cp "$FILEPATH" "$FILEPATH-before-$2"
            echo "$CODE" >> "$FILEPATH"
            echo "" >> "$FILEPATH"
            REBOOT=1
        fi
        ;;
    
    "$ACTION_REPL" )
        OLDCODE="$4"
        NEWCODE="$5"
        chk_arg_str "OLDCODE" "$OLDCODE"
        chk_arg_str "NEWCODE" "$NEWCODE"
        
        if [ "$(grep -c "$NEWCODE" "$FILEPATH")" -eq "0" ] ; then
            cp "$FILEPATH" "$FILEPATH-before-$2"
            sed -r -i "s/$OLDCODE/$NEWCODE/" "$FILEPATH"
            REBOOT=1
        fi
        ;;
    
    * )
        bad_action "$ACTION"
        ;;
esac

if [ "$REBOOT" -eq "1" ] ; then
    echo "$REBOOT" > "$REBOOT_FILE"
fi

echo "Done."
echo "$SEP"

