#!/bin/sh # $PostgreSQL: pgsql/src/tools/add_cvs_markers,v 1.2 2008/06/15 21:58:55 adunstan Exp $ # Author: Andrew Dunstan # Script to add PostgreSQL markers to source files that are lacking them. # currently only works for .c and .h files # Needs a sed that understands the -i switch. # Really only tested on my Linux box. # We try to avoid adding markers to third party files, or files that will # cause regression problems (e.g. some ecpg headers). # If the file begins with a comment, we put the marker in there, # otherwise we add a new comment at the top of the file. This makes things # a bit prettier. # This script should be run at the top of the source tree. # If we're in the tools directory, the script tries to take us to the # right spot. CWD=`pwd` test "`basename $CWD`" = "tools" && cd ../.. # need a dummy file in case we don't find any with missing markers, # to suppress messages about sed not finding any input files touch dummy # first process the files that already start with a comment: find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \ -o -name 'regression.h' -o -name 'sql3types.h' -o -name 'sqlca.h' \) \ -prune \) -o \( -name '*.[ch]' \) \( -exec grep -q '\$PostgreSQL' {} \; \ -o -print \) | \ { while read file ; do head -n 1 < $file | grep -q '^/\*' && echo $file done ; echo dummy ;} | \ xargs -l sed -i -e '1s/^\// /' -e '1i/*\n * \x24PostgreSQL:$ \n *' # now all the rest (i.e. the files that don't start with a comment) { find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \ -o -name 'regression.h' -o -name 'sql3types.h' -o -name 'sqlca.h' \) \ -prune \) -o \( -name '*.[ch]' \) \( -exec grep -q '\$PostgreSQL' {} \; \ -o -print \) ; echo dummy ;} | \ xargs -l sed -i -e '1i/*\n * \x24PostgreSQL:$ \n */' rm -f dummy