NetBSD/gnu/dist/sendmail/sendmail2netbsd

140 lines
3.7 KiB
Bash
Executable File

#! /bin/sh
#
# $NetBSD: sendmail2netbsd,v 1.5 2003/06/01 13:59:56 atatat Exp $
#
# Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
# must display the following acknowledgement:
# This product includes software developed by the NetBSD
# Foundation, Inc. and its contributors.
# 4. Neither the name of The NetBSD Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# sendmail2netbsd: removes Id tag and couple of other items, for importing
# sendmail tree into netbsd.
# works on current directory.
netbsdtag=$(echo @NetBSD@ | tr @ $)
c_tag() {
tf=$1
cat -<<EOF $tf > $tf.2.$$ &&
/* $netbsdtag */
#include <sys/cdefs.h>
#ifndef lint
__RCSID("$netbsdtag");
#endif
EOF
mv $tf.2.$$ $tf
if [ $? != 0 ]; then
echo "$f: retag error" 1>&2
exit 1
fi
echo "c style $netbsdtag added"
}
h_tag() {
tf=$1
cat -<<EOF $tf > $tf.2.$$ &&
/* $netbsdtag */
EOF
mv $tf.2.$$ $tf
if [ $? != 0 ]; then
echo "$f: retag error" 1>&2
exit 1
fi
echo "h style $netbsdtag added"
}
retag() {
f=$1
doidtag='s/\$\(Id[^\$]*\) \$/\1/'
tagging=false
# skip some files entirely
case "$f" in
*/sendmail/helpfile|*.jpg|*.ps|"")
echo "$f: skipping retag"
return 0
;;
*.[ch]|*.cf)
# we'll get these later (well...not the .cf files)
;;
*)
# add netbsd tag now
tagging=true
doidtag="h;${doidtag}p;g;"'s/\$\(Id[^\$]*\) \$/'$netbsdtag/
;;
esac
# now remove tags and maybe add ours
echo -n "$f: removing tags, "
sed -e 's/\$\(RCSfile[^\$]*\) \$/\1/' \
-e 's/\$\(Date[^\$]*\) \$/\1/' \
-e 's/\$\(Revision[^\$]*\) \$/\1/' \
-e "$doidtag" \
< $f > $f.1.$$ &&
mv $f.1.$$ $f
if [ $? != 0 ]; then
echo "$f: retag error"
exit 1
fi
if $tagging && fgrep -qs $netbsdtag $f; then
echo "generic $netbsdtag added"
else
# now add *our* tag
case "$f" in
*.c)
c_tag $f
;;
*.h)
h_tag $f
;;
*)
echo "no $netbsdtag added"
;;
esac
fi
}
### remove *.ps
(cd doc/op; make clean)
### Remove $'s around RCSfile, Id, Date, Revision, and maybe add a NetBSD tag
find . -name CVS -type d -prune -o -type f -print | \
grep -v sendmail2netbsd | \
while read f; do
retag $f
done
if [ $? != 0 ]; then
exit $?
fi
echo "please edit sendmail/helpfile by hand."
exit 0