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

Reply via email to