Module Name: src
Committed By: christos
Date: Sat Oct 8 19:16:08 UTC 2011
Added Files:
src/usr.bin/cleantags: Makefile cleantags.1 cleantags.sh
Log Message:
Small script used when importing 3rd party programs. The code in this
script is used in many foo2netbsd scripts, but none of them has the
complete list of keywords. I will make all those scripts use this one
instead.
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/usr.bin/cleantags/Makefile \
src/usr.bin/cleantags/cleantags.1 src/usr.bin/cleantags/cleantags.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: src/usr.bin/cleantags/Makefile
diff -u /dev/null src/usr.bin/cleantags/Makefile:1.1
--- /dev/null Sat Oct 8 15:16:08 2011
+++ src/usr.bin/cleantags/Makefile Sat Oct 8 15:16:08 2011
@@ -0,0 +1,6 @@
+# $NetBSD: Makefile,v 1.1 2011/10/08 19:16:08 christos Exp $
+
+MAN= cleantags.1
+SCRIPTS=cleantags.sh
+
+.include <bsd.prog.mk>
Index: src/usr.bin/cleantags/cleantags.1
diff -u /dev/null src/usr.bin/cleantags/cleantags.1:1.1
--- /dev/null Sat Oct 8 15:16:08 2011
+++ src/usr.bin/cleantags/cleantags.1 Sat Oct 8 15:16:08 2011
@@ -0,0 +1,28 @@
+.\" $NetBSD: cleantags.1,v 1.1 2011/10/08 19:16:08 christos Exp $
+.\"
+.Dd October 8, 2001
+.Dt cleantags 1
+.Os
+.Sh NAME
+.Nm cleantags
+.Nd Remove
+.Dv $
+around
+.Xr rcs 1
+keywords.
+.Sh SYNOPSIS
+.Nm Op Ar v
+.Ar files|directories
+.Sh DESCRIPTION
+The
+.Nm
+utility removes dollars around
+.Xr rcs 1
+id keywords in order to disable further changes to them.
+It is used when importing 3rd party programs to the tree.
+.Pp
+The
+.Op v
+flag can be used to list the files that are changed.
+.Sh SEE ALSO
+.Xr rcs 1
Index: src/usr.bin/cleantags/cleantags.sh
diff -u /dev/null src/usr.bin/cleantags/cleantags.sh:1.1
--- /dev/null Sat Oct 8 15:16:08 2011
+++ src/usr.bin/cleantags/cleantags.sh Sat Oct 8 15:16:08 2011
@@ -0,0 +1,67 @@
+#!/bin/sh
+# $NetBSD: cleantags.sh,v 1.1 2011/10/08 19:16:08 christos Exp $
+# Remove the $'s from rcs tags
+
+PROG="$(basename "$0")"
+PAT='\$(Author|Date|CVSHeader|Header|Id|LocalId|Locker|Log|Name|RCSfile|Revision|Source|State|NetBSD)'
+verbose=false
+
+dosed() {
+ sed \
+ -e 's/\$\(Author.*\) \$/\1/' \
+ -e 's/\$\(Date.*\) \$/\1/' \
+ -e 's/\$\(CVSHeader.*\) \$/\1/' \
+ -e 's/\$\(Header.*\) \$/\1/' \
+ -e 's/\$\(Id.*\) \$/\1/' \
+ -e 's/\$\(LocalId.*\) \$/\1/' \
+ -e 's/\$\(Locker.*\) \$/\1/' \
+ -e 's/\$\(Log.*\) \$/\1/' \
+ -e 's/\$\(Name.*\) \$/\1/' \
+ -e 's/\$\(RCSfile.*\) \$/\1/' \
+ -e 's/\$\(Revision.*\) \$/\1/' \
+ -e 's/\$\(Source.*\) \$/\1/' \
+ -e 's/\$\(State.*\) \$/\1/' \
+ -e 's/\$\(NetBSD.*\) \$/\1/' \
+ "$1" > "/tmp/$PROG$$" && mv "/tmp/$PROG$$" "$1"
+ if $verbose
+ then
+ echo "$1"
+ fi
+}
+
+usage() {
+ echo "Usage: $PROG [-v] <files>|<directories>" 1>&2
+ exit 1
+}
+
+while getopts "v" f
+do
+ case "$f" in
+ v)
+ verbose=true;;
+ *)
+ usage;;
+ esac
+done
+
+shift "$(expr "$OPTIND" - 1)"
+
+if [ -z "$1" ]
+then
+ usage
+fi
+
+for i
+do
+ if [ -d "$i" ]
+ then
+ find "$i" -type f -print0 | xargs -0 egrep -l "$PAT" |
+ while read f
+ do
+ dosed "$f"
+ done
+ elif egrep -qs "$PAT" "$i"
+ then
+ dosed "$i"
+ fi
+done