# .Sanitize for devo.

# Each directory to survive its way into a release will need a file
# like this one called "./.Sanitize".  All keyword lines must exist,
# and must exist in the order specified by this file.  Each directory
# in the tree will be processed, top down, in the following order.

# Hash started lines like this one are comments and will be deleted
# before anything else is done.  Blank lines will also be squashed
# out.

# The lines between the "Do-first:" line and the "Things-to-keep:"
# line are executed as a /bin/sh shell script before anything else is
# done in this directory.

Do-first:

cygnus_files="release release-info build-all.mk"

if ( echo $* | grep keep\-cygnus > /dev/null) ; then
	keep_these_too="${keep_these_too} ${cygnus_files}"
else
	lose_these_too="${lose_these_too} ${cygnus_files}"
fi

mpw_files="mpw-README mpw-configure mpw-config.in mpw-build.in ChangeLog.mpw"

if ( echo $* | grep keep\-mpw > /dev/null) ; then
	keep_these_too="${keep_these_too} ${mpw_files}"
else
	lose_these_too="${lose_these_too} ${mpw_files}"
fi

# All files listed between the "Things-to-keep:" line and the
# "Do-last:" line will be kept.  All other files will be removed.
# Directories listed in this section will have their own Sanitize
# called.  Directories not listed will be removed in their entirety
# with rm -rf.

Things-to-keep:

.cvsignore
COPYING
COPYING.LIB
CYGNUS
ChangeLog
Makefile.in
README
autoconf
bfd
binutils
byacc
config
config.guess
config.sub
configure
configure.in
cvs
deja-gnu
dejagnu
diff
dosrel
dvips
emacs
emacs19
etc
examples
expect
fileutils
flex
gas
gcc
gdb
gdbm
gdbtest
glob
gprof
grep
groff
include
install.sh
ispell
ld
libg++
libgcc
libiberty
libio
librx
m4
make
mmalloc
move-if-change
newlib
opcodes
pagas
patch
prms
rcs
readline
sed
send-pr
shellutils
sim
tcl
textutils
tk
test-build.mk
texinfo
tgas
utils
uudecode
wdiff
xiberty

Things-to-lose:

# The lines between the "Do-last:" line and the end of the file
# are executed as a /bin/sh shell script after everything else is
# done.

Do-last:

if ( echo $* | egrep verbose > /dev/null ) ; then
	verbose=true
else
	verbose=
fi

# Remove "sanitize-Sanitize" lines.
if [ -n "${verbose}" ] ; then
	echo Cleaning unconditional sanitizations out of Makefile.in...
fi
cp Makefile.in new
sed '/start\-sanitize\-Sanitize/,/end-\sanitize\-Sanitize/d' < Makefile.in > new
if [ -n "${safe}" -a ! -f .Recover/Makefile.in ] ; then
	mv Makefile.in .Recover
fi
mv new Makefile.in

if [ -n "${verbose}" ] ; then
	echo Thawing away the \"chill\"...
fi

# Don't try to clean directories here, as the 'mv' command will fail.
# Also, grep fails on NFS mounted directories.
if ( echo $* | grep keep\-chill > /dev/null ) ; then
	for i in * ; do
		if test ! -d $i && (grep sanitize-chill $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping chill stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-chill $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Thawing the \"chill\" out of $i...
			fi
			cp $i new
			sed '/start\-sanitize\-chill/,/end-\sanitize\-chill/d' < $i > new
			if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
				if [ -n "${verbose}" ] ; then
					echo Caching $i in .Recover...
				fi
				mv $i .Recover
			fi
			mv new $i
		fi
	done
fi

if [ -n "${verbose}" ] ; then
	echo Removing traces of \"mpw\"...
fi

# Don't try to clean directories here, as the 'mv' command will fail.
# Also, grep fails on NFS mounted directories.
if ( echo $* | grep keep\-mpw > /dev/null ) ; then
	for i in * ; do
		if test ! -d $i && (grep sanitize-mpw $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Keeping mpw stuff in $i
			fi
		fi
	done
else
	for i in * ; do
		if test ! -d $i && (grep sanitize-mpw $i > /dev/null) ; then
			if [ -n "${verbose}" ] ; then
				echo Removing traces of \"mpw\" from $i...
			fi
			cp $i new
			sed '/start\-sanitize\-mpw/,/end-\sanitize\-mpw/d' < $i > new
			if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
				if [ -n "${verbose}" ] ; then
					echo Caching $i in .Recover...
				fi
				mv $i .Recover
			fi
			mv new $i
		fi
	done
fi

for i in * ; do
	if test ! -d $i && (grep sanitize $i > /dev/null) ; then
		echo '***' Some mentions of Sanitize are still left in $i! 1>&2
	fi
done

# eof