#!/bin/bash
# update script for software update
# located in /config/scripts not modified during software update

SYSLOGTAG="ORANGE"
SCRIPT=${0##*/}

# UPDATE DHCLIENT BINARY IF NEEDED
if ! diff -q /sbin/dhclient /config/scripts/USG-ORANGE/dhclient3; then
    logger -t $SCRIPT "[$SYSLOGTAG] updating dhclient3..."
    sudo cp  /sbin/dhclient3 /sbin/dhclient3.bak
    sudo cp --force /config/scripts/USG-ORANGE/dhclient3 /sbin/dhclient3
    sudo chown root:root /sbin/dhclient3
    sudo chmod 755 /sbin/dhclient3
    logger -t $SCRIPT "[$SYSLOGTAG] dhclient3 updated"
else
    logger -t $SCRIPT "[$SYSLOGTAG] dhclient3 up-to-date"
fi

# UPDATE VYATTA SCRIPT IF NEEDED
if  grep -q "option rfc3118-auth code 90" /opt/vyatta/sbin/vyatta-interfaces.pl; then
    logger -t $SCRIPT "[$SYSLOGTAG] vyatta-interfaces.pl up-to-date"
else
    logger -t $SCRIPT "[$SYSLOGTAG] updating vyatta-interfaces.pl..."
	sudo sed --in-place=.bak '/\$output \.= "option rfc3442/a \    $output .= "option rfc3118-auth code 90 = string;\\n\\n";' /opt/vyatta/sbin/vyatta-interfaces.pl
    logger -t $SCRIPT "[$SYSLOGTAG] vyatta-interfaces.pl updated"
fi

#INSTALL DIBBLER IF NEEFED
if  dpkg -l | grep -q "dibbler-client"; then
    logger -t $SCRIPT "[$SYSLOGTAG] dibbler is installed"
else
    logger -t $SCRIPT "[$SYSLOGTAG] dibbler MISSING!"
fi

#UPDATE DIBBLER FILES IF NEEDED
if ! diff -q /etc/dibbler/client.conf /config/scripts/USG-ORANGE/client.conf; then
    logger -t $SCRIPT "[$SYSLOGTAG] updating dibbler client.conf..."
    sudo cp /etc/dibbler/client.conf /etc/dibbler/client.conf.bak
    sudo cp --force /config/scripts/USG-ORANGE/client.conf /etc/dibbler/client.conf
    sudo chown root:root /etc/dibbler/client.conf
    sudo chmod 755 /etc/dibbler/client.conf
    logger -t $SCRIPT "[$SYSLOGTAG] dibbler client.conf updated"
else
    logger -t $SCRIPT "[$SYSLOGTAG] dibbler client.conf up-to-date"
fi
if ! diff -q /etc/dibbler/radvd.sh /config/scripts/USG-ORANGE/radvd.sh; then
    logger -t $SCRIPT "[$SYSLOGTAG] updating dibbler radvd.sh..."
    sudo cp /etc/dibbler/radvd.sh /etc/dibbler/radvd.sh.bak
    sudo cp --force /config/scripts/USG-ORANGE/radvd.sh /etc/dibbler/radvd.sh
    sudo chown root:root /etc/dibbler/radvd.sh
    sudo chmod 755 /etc/dibbler/radvd.sh
    logger -t $SCRIPT "[$SYSLOGTAG] dibbler radvd.sh updated"
else
    logger -t $SCRIPT "[$SYSLOGTAG] dibbler radvd.sh up-to-date"
fi
                            
#CHECK IF DIBBLER IS RUNNING
if pgrep -x dibbler-client >/dev/null; then
	logger -t $SCRIPT "[$SYSLOGTAG] dibbler is running"
else
	logger -t $SCRIPT "[$SYSLOGTAG] dibbler is NOT RUNNING! Starting dibbler..."
	sudo /etc/init.d/dibbler-client start
	if pgrep -x dibbler-client >/dev/null; then
		logger -t $SCRIPT "[$SYSLOGTAG] dibbler is running"
	else
		logger -t $SCRIPT "[$SYSLOGTAG] dibbler WON'T START!"
	fi
fi
