bin/checkFileSize

Summary

Maintainability
Test Coverage
#!/bin/bash
# checkFileSize
#
#    Purpose:
#        
#    Description:
#        
#    History:
#        Tue Jan  3 14:41:15 TST 2012, Created by jumperchen
#
#Copyright (C) 2012 Potix Corporation. All Rights Reserved.
#
if [ $# != 2 ] && [ $# != 4 ] ; then
    echo Please specify two files or two folders
    echo for example,
    echo ./bin/checkFileSize folder1 folder2
    echo To replace version number in each file/folder, put version number in front of the file/folder names
    echo for example,
    echo ./bin/checkFileSize 6.0.0 folder1 6.0.1 folder2
    exit 1
fi

if [ $# != 4 ] ; then
    folder1=$1
    folder2=$2
else
    ver1=$1
    folder1=$2
    ver2=$3
    folder2=$4
fi

if [ ! -d "$folder1" ] && [ ! -f "$folder1" ] ; then
    echo $folder1 is not a file or folder
    exit 1
fi
if [ ! -d "$folder2" ] && [ ! -f "$folder2" ] ; then
    echo $folder2 is not a file or folder
    exit 1
fi

maindir="$(pwd)"
tmpdir="$maindir"
os="$(uname)"

if [ $os == "Darwin" ]; then
    tmpdir=$TMPDIR
fi

tmp1="checktmp1"
tmp2="checktmp2"

if [ $(basename "$folder1") = "maven" ] && [ $(basename "$folder2") = "maven" ] ; then
    isMaven="true"
else
    isMaven="false"
fi

function checkFileSize {
    echo $(pwd)/$1
    if [ -d $1 ] ; then
        cd $1
    fi
    du -ah * >> $tmpdir/$2.log
}

function checkFileSizeMaven {
    if [ -d $maindir/tmp ] ; then
        rm -rf $maindir/tmp
    fi
    mkdir $maindir/tmp
    cp -r $1 $maindir/tmp
    cd $maindir/tmp
    unzipJar
    cd $maindir/tmp
    du -ah * >> $tmpdir/$2.log
    rm -rf $maindir/tmp
}

function unzipJar {
    for f in `ls | sort`; do
        if [ -f "$f" ] ; then
            if [ "$(echo "$f" | awk '/jar$/{print "yes"}')" = "yes" ] ; then
                tmpDir=$(pwd)/$(basename "$f" .jar)
                mkdir $tmpDir
                unzip $f -d $tmpDir
                rm -rf $f
            else
                cp $f $maindir/tmp
            fi
        elif [ -d "$f" ] ; then
            cd $f
            unzipJar
            cd -
        fi
    done
}

if [ -f "$maindir/$tmp1.log" ] ; then
    rm $maindir/$tmp1.log
fi
if [ -f "$maindir/$tmp2.log" ] ; then
    rm $maindir/$tmp2.log
fi
if [ -d "$maindir/tmp" ] ; then
    rm -rf $maindir/tmp
fi

if [ "$isMaven" = "true" ] ; then
    checkFileSizeMaven "$folder1" "$tmp1"
    checkFileSizeMaven "$folder2" "$tmp2"
else
    checkFileSize "$folder1" "$tmp1"
    checkFileSize "$folder2" "$tmp2"
fi

cd $tmpdir

if [ $# != 2 ] ; then
    sed -i "s/$ver1/{VER}/g" $tmp1.log
    sed -i "s/$ver2/{VER}/g" $tmp2.log
fi

sort -n $tmp1.log -o $tmp1.log
sort -n $tmp2.log -o $tmp2.log

diff $tmp1.log $tmp2.log
if [ $? != 0 ] ; then
    if [ -f TortoiseMerge.exe ] ; then
        TortoiseMerge.exe $tmp1.log $tmp2.log
    elif [ $os == "Darwin" ]; then
        opendiff $tmp1.log $tmp2.log
    else 
        vimdiff $tmp1.log $tmp2.log
    fi
else
    echo "All files are matched!"
fi

if [ $os != "Darwin" ]; then
    rm $tmp1.log
    rm $tmp2.log
fi