#!/bin/sh

# Umounting various filesystems ...
#

for x in dist/dev/shm dist/dev dist/proc dist/rock-orig \
         src/*.mnt src/*/*.mnt
do
	umount $x > /dev/null 2>&1
	mount -o remount,ro $x > /dev/null 2>&1
done

if [ -f _nodel_ ] ; then
	echo "Found _nodel_ file -> no clean-up or checks!"
	exit 0
fi 

# Create list of files and dirs to remove
#
dellst=""
for x in src lib tars dist ; do
	[ -d $x -o -f $x ] && dellst="$dellst $x"
done
#
x=`echo */ | tr ' ' '\n' | egrep -vx 'src/|tars/|dist/|lib/'`
dellst="$dellst `find $x -name '*~' | tr '\n' ' '`"

# Do it.
#
if [ "$dellst" = " " ] ; then
	echo "Directory tree is already clean."
else
	echo "Going to delete:$dellst"
	echo -n "You have 5 secs to abort: 5"
	sleep 1 ; echo -en \\007 ; echo -n " 4"
	sleep 1 ; echo -en \\007 ; echo -n " 3"
	sleep 1 ; echo -en \\007 ; echo -n " 2"
	sleep 1 ; echo -en \\007 ; echo -n " 1"
	sleep 1 ; echo -n " GO!"
	rm -rf $dellst ; echo ' .. done.'
fi

# Print warnings for 'liggering' files
#

echo "searching for liggering files ..."
find $x									\
	\( -name 'DEADJOE' -o -name '*-[xX]' -o -name '.[^.]*' -o	\
           -name '*.orig' -o -name '*.rej' -o -name '*#*' -o		\
           -name TRANS.TBL -o -name '*.cksum-err' -o -name x -o		\
	   -name '*[.-]old' -o -name a.out -o -name core \)		\
	-printf 'WARNING: Found %p\n'
find $x								\
  \(									\
	\( \( ! -type l ! -perm 755 ! -perm +644 \) -o			\
	   \( -type l ! -perm 777 \) \)					\
	-printf 'WARNING: Non-Standard Perm at %p\n'			\
  \)
find $x									\
  \(									\
	\( \( ! -type d ! -type f ! -type l \) -o \( -lname '/*' \) -o	\
	  \( -type l ! -xtype f ! -xtype d \) \)			\
	-printf 'WARNING: Dangerous file: %p\n'				\
  \)

echo "search finished"

# Make devlevel.txt checks
#
( eval `grep '^devlv=' scripts/parse-config | cut -f1 -d' '`
  cd pkg-config ; de=""; for x in * ; do
	[ -s "$x/devlevel.txt" ] || de="$de $x"
  done
  de="$de `grep -vx "$devlv" */devlevel.txt | sed 's,/.*,,;'`"
  # test for space-filled string
  de="$(echo $de | sed 's/ \{2,\}/ /g')"
  [ "$de" ] && echo "Devlevel Error ($devlv):" \
	`echo $de | tr ' ' '\n' | sort -u | tr '\n' ' '`
)

exit 0
