#!/bin/bash
# $Id$

# Acknowledgment:
#  The following code is a modified version of an original work written by
#  Greg Schafer for the "DIY Linux" project and is included here with his
#  permission.
#  ref: http://www.diy-linux.org
#

set -e

: <<inline_doc
    desc:       creates the ICA report
    usage:      do_ica_work $PREV $ITERATION $ICALOGDIR $DEST_ICA
    input vars: $1 previous iteration
                $2 current iteration
                $3 ICA log dir
                $4 directory where ICA iterations are stored
    externals:  --
    modifies:   --
    returns:    --
    on error:
    on success:
inline_doc

RAWDIFF=/tmp/rawdiff.$$
REPORT="${3}/REPORT.${1}V${2}"

echo -en "\nGenerating ICA analysis report $1 versus $2 ..."

mkdir -p $3

cd $4

echo -e "Diffing ${1} and ${2}... " > $REPORT
diff -ur ${1} ${2} > $RAWDIFF || :

echo -e "The list of binary files that differ:\n" > $REPORT
grep "iles.*differ$" $RAWDIFF >> $REPORT

echo -e "The list of files that exist \"only in\" 1 of the directories:\n" >> $REPORT

if grep "^Only in" $RAWDIFF >/dev/null 2>&1; then
  grep "^Only in" $RAWDIFF >> $REPORT
else
  echo NONE >> $REPORT
fi

grep -v "iles.*differ$" $RAWDIFF | \
grep -v "^Only in" > ${3}/${1}V${2}.ASCII.DIFF

rm -f $RAWDIFF

echo "done."