aboutsummaryrefslogtreecommitdiff
path: root/src/tools/add_cvs_markers
blob: 7344735aa288a6e3d73bab2f17219db91fe37fa4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/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