#!/bin/sh

CHKPERM=/etc/chkperm

if [ x"$1" = x"-t" -o x"$1" = x"--test" ]; then
    istest=1
fi

find / -xdev \( \( -name tmp -o -name ".*" \) -prune \) -o \( \( -name "*.rpmnew" -o -name "*.rpmorig" \) -print \) | while read F; do 
    G=${F%.*};
    if [ -n "$istest" ]; then
	echo "'$F' '$G'"
    else
	kdiff3 "$F" "$G";
	if [ -f "$G".orig ]; then 
	    chmod --reference="$F" "$G";
	    chown --reference="$F" "$G";
	    chgrp --reference="$F" "$G";
	    rm "$F" "$G".orig
	fi
    fi
done 2>/dev/null

if [ -f "$CHKPERM" ]; then
    cat "$CHKPERM"
else
    echo 3777 /var/mail
fi | while read PERM_CONF FILE; do
    if [ -e "$FILE" ]; then
	PERM_REAL=`stat -c "%a" "$FILE"`
	if [ "$PERM_REAL" -ne "$PERM_CONF" ]; then
	    echo -e "!!! Changing permissions on '$FILE' from $PERM_REAL to $PERM_CONF !!!"
	    chmod "$PERM_CONF" "$FILE"
	fi
    fi
done
