#!/bin/bash
#
# $Id: mib2c-update 12859 2005-09-27 16:01:36Z rstory $
#
# script to merge custom code into updated mib2c code
#
#----- example .mib2c-updaterc -----
#UPDATE_OID=ipAddressTable
#UPDATE_CONF=mib2c.mfd.conf
#UPDATE_MIB2C_OPTS=
#UPDATE_NOPROBE=1
#----- example .mib2c-updaterc -----

#----------------------------------------------------------------------
#
# defaults
#
UPDATE_CURR=$PWD
UPDATE_ORIG=$PWD/.orig
UPDATE_NEW=$PWD/.new
UPDATE_MERGED=$PWD/.merged
UPDATE_BACKUP=$PWD/.backup
UPDATE_PATCH=$PWD/.patch

#
# number of diff context lines / patch fuzz factor
#
FUZZ=5
FIRST_RUN=0

#----------------------------------------------------------------------
#
debug()
{
    if [ $UPDATE_DEBUG -ge 1 ]; then
        echo $1
    fi
}

error()
{
    echo "ERROR: $@" > /dev/stderr
}

die()
{
    error "$@"
    exit 99
}

safecd()
{
    cd $1
    if [ $? -ne 0 ]; then
        die "changing to directory $1 from $PWD failed!"
    fi
}

safecp()
{
    cp $@
    if [ $? -ne 0 ]; then
        die "'cp $@' failed!"
    fi
}

#----------------------------------------------------------------------
#
check_setup()
{
    rc=1
    for d in $UPDATE_CURR $UPDATE_ORIG $UPDATE_NEW $UPDATE_MERGED $UPDATE_PATCH $UPDATE_BACKUP $UPDATE_BACKUP/curr $UPDATE_BACKUP/orig
    do
        if [ ! -d $d ]; then
            echo "Creating missing directory $d"
            mkdir -p $d
            if [ $? -ne 0 ]; then
                error "Could not create directory $d"
                rc=0
            fi
        fi
    done

    if [ -z "$UPDATE_OID" ]; then
        error "Environment variable missing! Set UPDATE_OID in .mib2c-updaterc"
        rc=0
    fi

    if [ -z "$UPDATE_CONF" ]; then
        error "Environment variable missing! Set UPDATE_CONF in .mib2c-updaterc"
        rc=0
    fi

#    if [ -z "$UPDATE_" ]; then
#        error "Environment variable missing! Set UPDATE_ in .mib2c-updaterc"
#        rc=0
#    fi

    if [[ $rc -eq 0 && $UPDATE_NOPROBE -ne 1 ]]; then
        mib2c -c unknown  > /dev/null 2>&1
        if [ $? -eq 0 ]; then
            error "WARNING: mib2c returns 0 on error conditions!"
            rc=0
        fi
    fi

    return $rc
}

#----------------------------------------------------------------------
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_CURR=$2
    DD_OUTPUT=$-----
#
do_diff()
{
    DD_ORIG=$1
    DD_C