#!/bin/sh

# NEEDS: SCRIPT, OLDVERSION, NEWVERSION, PATCH_SUBDIR, EXTRACT_TO, REPO_PATH

echo $EXTRACT_TO

mkdir "$EXTRACT_TO/$SCRIPT-$OLDVERSION/"
mkdir "$EXTRACT_TO/$SCRIPT-$NEWVERSION/"

tar xzf "installs/$SCRIPT-$OLDVERSION.tar.gz" -C "$EXTRACT_TO/$SCRIPT-$OLDVERSION/"
tar xzf "installs/$SCRIPT-$NEWVERSION.tar.gz" -C "$EXTRACT_TO/$SCRIPT-$NEWVERSION/"

pushd .
cd $EXTRACT_TO
diff -ruN --exclude="*wp-content/themes/default/*" "$SCRIPT-$OLDVERSION" "$SCRIPT-$NEWVERSION" > "$REPO_PATH/patches/$SCRIPT-$OLDVERSION-$NEWVERSION.patch"

#
# Find any modified binary files, and put them into a tarball
#

oldIFS="$IFS"
IFS="
"

echo "Creating binary-files tarball..."

PATCH_PATH="$REPO_PATH/patches/$SCRIPT-$OLDVERSION-$NEWVERSION"
OLDFILES_MD5="$REPO_PATH/patches/$SCRIPT-$OLDVERSION-$NEWVERSION-old.md5"
NEWFILES_LIST="$REPO_PATH/patches/$SCRIPT-$OLDVERSION-$NEWVERSION-new"
DELFILES="$REPO_PATH/patches/$SCRIPT-$OLDVERSION-$NEWVERSION-del"
NOT_THERE_FILES="$REPO_PATH/patches/$SCRIPT-$OLDVERSION-$NEWVERSION-not_there"

rm "$OLDFILES_MD5" "$NEWFILES_LIST" "$DELFILES" "$NOT_THERE_FILES" >/dev/null 2>&1

for i in `cat "$REPO_PATH/patches/$SCRIPT-$OLDVERSION-$NEWVERSION.patch" | grep "^Binary files "`; do

    #
    # The 5th word in the "Binary files " line is the path to the NEWVERSION file
    #

    OLDFILE_PATH="$EXTRACT_TO/$SCRIPT-$OLDVERSION/$PATCH_SUBDIR"
    OLDFILE="`echo "$i" | awk '{ print $5 }' | sed s\\\\"${SCRIPT}-${NEWVERSION}/${PATCH_SUBDIR}/"\\\\\\\\`"
    NEWFILE_PATH="$EXTRACT_TO/$SCRIPT-$NEWVERSION/$PATCH_SUBDIR"
    NEWFILE="`echo "$i" | awk '{ print $5 }' | sed s\\\\"${SCRIPT}-${NEWVERSION}/${PATCH_SUBDIR}/"\\\\\\\\`"

    [ -e "$OLDFILE_PATH/$OLDFILE" ] && md5sum "$OLDFILE_PATH/$OLDFILE" >> "$OLDFILES_MD5"
    echo "$NEWFILE_PATH/$NEWFILE" >> "$NEWFILES_LIST"

    if [ -e "$NEWFILE_PATH/$NEWFILE" ]; then
	mkdir -p "$PATCH_PATH/$NEWFILE"
	cp "$NEWFILE_PATH/$NEWFILE" "$PATCH_PATH/$NEWFILE"
	[ -e "$OLDFILE_PATH/$OLDFILE" ] || echo "$OLDFILE" >> "$NOT_THERE_FILES"
    else
	echo "$NEWFILE" >> "$DELFILES"
    fi
done

popd

rm -rf "$EXTRACT_TO/$SCRIPT-$OLDVERSION/" "$EXTRACT_TO/$SCRIPT-$NEWVERSION/"
