#!/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 .mib2c-updaterc ]; then
    . .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
