#!/bin/bash

# Note: All paths MUST be absolute paths!

. ./upgrade-settings.sh

die () { echo "$1" >&2; exit 1; }

mkdir -p "$TEMPDIR"

PATCH_SUBDIR="$PATCH_SUBDIR" EXTRACT_TO="$TEMPDIR" SCRIPT="$SCRIPT" OLDVERSION="$OLDVERSION" NEWVERSION="$NEWVERSION" REPO_PATH="$REPO_PATH" ./make-patch.sh

[ -z "$SKIP_get-versions_SCAN" ] && /mit/scripts/sec-tools/get-versions.pl

oldIFS="$IFS"
IFS="
"

for i in `cat $SCRIPTS_VERSION_FILES`; do 
    echo "$i" >> "$TEMPDIR/finished_files.txt"

    if [ -n "`cat "$i" | grep "$SCRIPT-$OLDVERSION" | grep -v "$SCRIPT-$NEWVERSION"`" ]; then
	DIR=$(dirname "$i")
	echo "Backing up $DIR to ${TEMPDIR}${DIR}:"
	mkdir -p "${TEMPDIR}${DIR}"
	cp -R "$DIR" "${TEMPDIR}${DIR}"

	echo "Applying patch..."
	pushd .
	cd $DIR
	REPO_PATH="$REPO_PATH" PATH_TO_UPDATE="$DIR" "$REPO_PATH/scripts-patch.sh" || die "ERROR updating $DIR!"
	popd
	echo "Patch applied successfully!"

    else
	echo "$i does not reference an install of $SCRIPT-$OLDVERSION, or it has already been upgraded to $SCRIPT-$NEWVERSION."
    fi
done

IFS="$oldIFS"
