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