#!/bin/sh
#
# $Id$
#
# 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: $@" >&2
}

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=$3
    # u | c unified | context
    # r     recursive
    # b     ignore blank lines
    # w     ignore white space
    # p     Show which C function each change is in.
    # d     smaller changes
    #    --exclude='*Makefile' --unidirectional-new-file
    local rc=0
    local rcs=0
    safecd $DD_ORIG
    echo "  checking files in $1 ($PWD)"
    files=`ls *$UPDATE_OID* 2>/dev/null`
    if [ ! -z "$files" ]; then
        for f in $files; do
            diff -U $FUZZ -p -b -w --show-c-function \
                -I "$""Id:" $f $DD_CURR/$f >> $DD_OUTPUT
            rc=$?
            rcs=`expr $rcs + $rc`
            if [ $rc -eq 1 ]; then
                echo "   $f is different"
            fi
        done
    fi
    if [ $rcs -eq 0 ]; then
        rm -f $DD_OUTPUT
    fi
    safecd -
    return $rcs
}

#----------------------------------------------------------------------
#
do_cp()
{
    src=$1
    dest=$2
    if [ ! -d $dest ]; then
        die "dest $dest is not a directory"
    fi
    if [ ! -d $src ]; then
        die "src $src is not a directory"
    fi
    safecd $src
    files=`ls *$UPDATE_OID* 2>/dev/null| egrep "(file|onf|m2d|txt|\.c|\.h)$"`
    if [ -z "$files" ]; then
       echo "   no files to copy from $src"
    else
       safecp $files $dest
       if [ $? -ne 0 ]; then
           die "error while copying files from $src to $dest in $PWD"
       fi
    fi
    safecd -
}

#----------------------------------------------------------------------
#
save_diff()
{
    echo "Creating patch for your custom code"
    cnt=`ls $UPDATE_CURR/*$UPDATE_OID* 2>/dev/null | egrep "(file|onf|m2d|txt|\.c|\.h)$" | wc -l`
    if [ $cnt -eq 0 ]; then
        echo "   no custom code!"
        FIRST_RUN=1
        return
    fi

    do_diff $UPDATE_ORIG/ $UPDATE_CURR/ $UPDATE_PATCH/custom.$UPDATE_DATE
    if [ $? -eq 0 ]; then
        echo "   no custom code changes found."
    fi
}

#----------------------------------------------------------------------
#
gen_code()
{
    copy_defaults . $UPDATE_NEW

    safecd $UPDATE_NEW
    files=`ls *$UPDATE_OID* 2>/dev/null | grep -v "^default"`
    if [ ! -z "$files" ]; then
       rm -f $files > /dev/null 2>&1 
    fi
    echo "mib2c $@ -c $UPDATE_CONF $UPDATE_MIB2C_OPTS $UPDATE_OID"
    mib2c $@ -c $UPDATE_CONF $UPDATE_MIB2C_OPTS $UPDATE_OID
    if [ $? -ne 0 ]; then
        die "bad rc $rc from mib2 while generation new code."
    fi
    safecd -
}

#----------------------------------------------------------------------
#
check_new()
{
    echo "Checking for updates to generated code"
    do_diff $UPDATE_ORIG/ $UPDATE_NEW/ $UPDATE_PATCH/generated.$UPDATE_DATE
    if [ $? -eq 0 ]; then
        echo "Generated code has not changed."
        safecd $UPDATE_PATCH
        files=`ls *.$UPDATE_DATE 2>/dev/null `
        if [ ! -z "$files" ]; then
           rm $files
        fi
        exit 0
    fi
}

#----------------------------------------------------------------------
#
merge_code()
{
    files=`ls $UPDATE_MERGED/* 2>/dev/null `
    if [ ! -z "$files" ]; then
       rm $UPDATE_MERGED/*
    fi
    do_cp $UPDATE_NEW $UPDATE_MERGED

    if [ -f $UPDATE_PATCH/custom.$UPDATE_DATE ]; then
       touch .M2C-UPDATE-MERGE-FAILED
       echo "Patching new generated code in $UPDATE_MERGED ($PWD)"
       # --forward = ignore already applied
       patch --forward -F $FUZZ -N -d $UPDATE_MERGED -i $UPDATE_PATCH/custom.$UPDATE_DATE
       if [ $? -ne 0 ]; then
           error "Could not apply custom code patch to new generated code"
           die   "You must fix the problem in $UPDATE_MERGED, and then re-run mib2c-update."
       fi
       rm .M2C-UPDATE-MERGE-FAILED
    fi
}

copy_defaults()
{
    SRC=$1
    DST=$2
    if [ -d $SRC/defaults ]; then
       safecp -a $SRC/defaults $DST
    else
        files=`ls $SRC/default-*.m2d 2>/dev/null `
        if [ ! -z "$files" ]; then
           safecp $files $DST
        fi
    fi

}

copy_merged()
{
    echo "Backing up current code to $UPDATE_BACKUP/curr"
    do_cp $UPDATE_CURR $UPDATE_BACKUP/curr/
    copy_defaults . $UPDATE_BACKUP/curr/

    echo "Copying merged code to $UPDATE_CURR"
    do_cp $UPDATE_MERGED $UPDATE_CURR/


    echo "Backing up original code to $UPDATE_BACKUP/orig"
    do_cp $UPDATE_ORIG $UPDATE_BACKUP/orig/
    echo "Saving new original code to $UPDATE_ORIG"
    do_cp $UPDATE_NEW $UPDATE_ORIG/
}

copy_new()
{
    echo "Copying code to $UPDATE_CURR"
    do_cp $UPDATE_NEW $UPDATE_CURR/
    # copy defaults back to current dir (which may not be UPDATE_CURR)
    copy_defaults $UPDATE_NEW .

    echo "Saving original code to $UPDATE_ORIG"
    do_cp $UPDATE_NEW $UPDATE_ORIG/
}

copy_code()
{
    if [ $FIRST_RUN -ne 1 ]; then
        copy_merged
    else
        copy_new
    fi

    # always get defaults from UPDATE_NEW, since those are what were used.
    copy_defaults $UPDATE_NEW .
}


#----------------------------------------------------------------------
UPDATE_NOPROBE=0

if [ -f $HOME/.mib2c-updaterc ]; then
    . $HOME/.mib2c-updaterc
fi

if [ -f $PWD/.mib2c-updaterc ]; then
    . $PWD/.mib2c-updaterc
else
   echo "creating example .mib2c-udpaterc. edit as needed and re-run "
   echo "mib2c-update."
   
   echo "UPDATE_OID=ipAddressTable" >> .mib2c-updaterc
   echo "UPDATE_CONF=mib2c.mfd.conf" >> .mib2c-updaterc
   echo "UPDATE_MIB2C_OPTS=" >> .mib2c-updaterc
   echo "#UPDATE_NOPROBE=1" >> .mib2c-updaterc
fi

check_setup
if [ $? -ne 1 ]; then
    exit 1
fi

UPDATE_DATE=`date "+%F_%I.%M"`
echo "Starting regneration of $UPDATE_OID using $UPDATE_CONF at $UPDATE_DATE"

if [ -f .M2C-UPDATE-MERGE-FAILED ]; then
    echo "It appears that the last run of mib2c-update was not able to merge"
    echo "your changes automatically. Do you want to:"
    echo
    while : ; do
        echo "[c)opy merged files to $UPDATE_CURR]"
        echo "[r)e-run from scratch]"
        echo "[q)uit]"
        echo "(c|r|q) ?"
        read ans
        if [ "x$ans" = "xr" ]; then
            rm .M2C-UPDATE-MERGE-FAILED
            break
        elif [ "x$ans" = "xc" ]; then
            echo "Have you have manually merged all the"
            echo "changes into the merged directory?"
            echo "(y|n)"
            read ans
            if [ "x$ans" != "xy" ]; then
                echo "Ok. Try again after you've done that."
                exit 1
            fi
            rm .M2C-UPDATE-MERGE-FAILED
            copy_code
            exit 0
        fi
    done
fi

save_diff
gen_code $@
if [ $FIRST_RUN -ne 1 ]; then
    check_new
    merge_code
fi
copy_code
