1#!/bin/sh
2# $NetBSD: cleantags.sh,v 1.1 2011/10/08 19:16:08 christos Exp $
3# Remove the $'s from rcs tags
4
5PROG="$(basename "$0")"
6PAT='\$(Author|Date|CVSHeader|Header|Id|LocalId|Locker|Log|Name|RCSfile|Revision|Source|State|NetBSD)'
7verbose=false
8
9dosed() {
10	sed \
11	    -e 's/\$\(Author.*\)\$/\1/' \
12	    -e 's/\$\(Date.*\)\$/\1/' \
13	    -e 's/\$\(CVSHeader.*\)\$/\1/' \
14	    -e 's/\$\(Header.*\)\$/\1/' \
15	    -e 's/\$\(Id.*\)\$/\1/' \
16	    -e 's/\$\(LocalId.*\)\$/\1/' \
17	    -e 's/\$\(Locker.*\)\$/\1/' \
18	    -e 's/\$\(Log.*\)\$/\1/' \
19	    -e 's/\$\(Name.*\)\$/\1/' \
20	    -e 's/\$\(RCSfile.*\)\$/\1/' \
21	    -e 's/\$\(Revision.*\)\$/\1/' \
22	    -e 's/\$\(Source.*\)\$/\1/' \
23	    -e 's/\$\(State.*\)\$/\1/' \
24	    -e 's/\$\(NetBSD.*\)\$/\1/' \
25	    "$1" > "/tmp/$PROG$$" && mv "/tmp/$PROG$$" "$1"
26	if $verbose
27	then
28		echo "$1"
29	fi
30}
31
32usage() {
33	echo "Usage: $PROG [-v] <files>|<directories>" 1>&2
34	exit 1
35}
36
37while getopts "v" f
38do
39	case "$f" in
40	v)
41		verbose=true;;
42	*)
43		usage;;
44	esac
45done
46
47shift "$(expr "$OPTIND" - 1)"
48
49if [ -z "$1" ]
50then
51	usage
52fi
53
54for i
55do
56	if [ -d "$i" ]
57	then
58		find "$i" -type f -print0 | xargs -0 egrep -l "$PAT" |
59		while read f
60		do
61			dosed "$f"
62		done
63	elif egrep -qs "$PAT" "$i" 
64	then
65		dosed "$i"
66	fi
67done
68