#!/usr/bin/env bash
#
#       oesyslog
#       Version 1.0
#
################################################################################
# BOARD SCRIPT, NOT FOR STANDALONE USE
################################################################################
#
# kyoungmeyer@emacinc.com
# March 26, 2014
#
# Copyright (C) 2014, EMAC, Inc.
# All rights reserved.      

Version="1.0"
version () { 
	echo "$(basename $0) (EMAC OE Automation Tools) Version $Version"
	echo "Copyright (C) 2013-2014 EMAC, Inc.  All rights reserved."; 
} 
help () {
    echo
    echo "This is a board script that depends on another script to work"
    echo "properly; please do not use as a standalone script"
    echo
    echo "Options:"
    echo "  -v      Display version info and exit"
    echo "  -h      Display this help and exit"
    echo
    version
    echo
    echo "Copyright (C) 2013, EMAC, Inc."
    echo "All rights reserved."
    exit 0
}
valid_ip(){
    local  ip="$1"
    local  stat=1

    if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
        OIFS=$IFS
        IFS='.'
        ip=($ip)
        IFS=$OIFS
        [[ ${ip[0]} -lt 255 && ${ip[1]} -lt 255 \
            && ${ip[2]} -lt 255 && ${ip[3]} -lt 255 ]]
        stat=$?
    fi
    return $stat 
}


while getopts ":vhs:" opt; do
  case $opt in
    s   ) server=$OPTARG;;
    v   ) version; exit 0;;
    h   ) help; exit 0;;
    \?  ) echo "Invalid option: -$OPTARG" >&2; exit 1;;
  esac
done
if ! valid_ip $server; then
    echo "$server is not a valid IP" >&2
    exit 1
fi

ipdev=$(route -n | grep UG | awk '{ print $8 }')

ipaddr=$(ifconfig $ipdev | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')

if [[ ! -f /etc/syslog-startup.conf.emacbak ]]; then 
    cp /etc/syslog-startup.conf /etc/syslog-startup.conf.emacbak
fi
sed -i "s/^\(DESTINATION\s*=\s*\).*$/\1\"buffer remote\"/" /etc/syslog-startup.conf
sed -i "s/^\(REMOTE\s*=\s*\).*$/\1$server:514/" /etc/syslog-startup.conf

/etc/init.d/syslog restart 2>&1 >/dev/null
if [[ $? -ne 0 ]]; then
    echo "syslog did not restart properly"
    exit 1
fi
sleep 2

logger "Remote syslogging activated from $ipaddr"
