#!/bin/bash --
# Replace old file with .rpmnew file.
##
# Cd to the target directory before run me.

export LANG=C

TARGET=$1
HERE=$(pwd)
F_EXT=".rpmnew"

# Compare contents.
diff -q "${HERE}/${TARGET}" "${HERE}/${TARGET}${F_EXT}" >/dev/null
RET=$?

case $RET in
    0)
	CONTENT="OK";;
    1)
	CONTENT="DIFFER!";;
    *)
	exit 1;;
esac

# Compare attribute.
RET=0
diff -q <(ls -l "${HERE}/${TARGET}" |cut -d ' ' -f 1) <(ls -l "${HERE}/${TARGET}${F_EXT}" |cut -d ' ' -f 1) >/dev/null
RET=$?

case $RET in
    0)
	ATTR="OK";;
    1)
	ATTR="DIFFER!";;
    *)
	exit 1;;
esac

# Confirm and replace if anything differ.
if [ $CONTENT != OK -o $ATTR != OK ]; then
    cat <<EOM
Content   : $CONTENT
Attribute : $ATTR
EOM

    while [ "$p" != "y" -a "$p" != "n" ]; do
	echo "Replace?:[y/n]"
	read p
    done

    if [ "$p" = "n" ]; then
	echo "Aborted by user."
	exit 0
    fi
fi

mv -f "${HERE}/${TARGET}${F_EXT}" "${HERE}/${TARGET}"
   
exit $?
