summaryrefslogtreecommitdiffstats
path: root/base/scripts/enable_cvs_keywords_in_svn
blob: fd14a885f7c310e540a8f1484dad906735d0da56 (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash
# BEGIN COPYRIGHT BLOCK
# (C) 2010 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK

# Always switch into this base directory
# prior to script execution so that all
# of its output is written to this directory
cd `dirname $0`

# Retrieve the name of this base directory
PKI_PWD=`pwd`

# Retrieve the base name of this script
PKI_SCRIPT=`basename $0`

# Print pre-script instructions
printf "REMINDER:  ALWAYS remember to execute 'svn update' on 'pki/base'\n"
printf "           PRIOR to executing '${PKI_SCRIPT}'!\n\n"
while :
do
    printf "Have you executed 'svn update' at the 'pki/base' level?  [yn]  "
    read ANSWER
    printf "\n"
    if [ "${ANSWER}" = "N" ] ||
       [ "${ANSWER}" = "n" ] ; then
        printf "\n"
        printf "Please execute 'svn update'\n"
        printf "PRIOR to executing '${PKI_SCRIPT}'!\n\n"
        exit 255
    elif [ "${ANSWER}" = "Y" ] ||
         [ "${ANSWER}" = "y" ] ; then
        printf "\n"
		break
	else
        continue
    fi
done

# Set equivalent "SVN" keyword properties to enable
# legacy "CVS" keywords in pre-existing PKI files
SVN_KEYWORDS="Author Date Header Id Revision URL"

# Generate timestamp
PKI_TIMESTAMP=`date  +%Y%m%d%H%M%S`

# Create the name of the list
PKI_LIST=list.${PKI_TIMESTAMP}

# Switch into the 'pki/base' directory
cd ${PKI_PWD}/..

# Fill the list with the name of each ".c", ".cpp", and ".java" file
find . -type f | grep -v '/\.svn/' | egrep "\.(c|cpp|h|pm|java)$" > ${PKI_LIST}

# Complete the list with miscellaneous files containing legacy "CVS" keywords
echo "./ca/shared/conf/catalina.policy" >> ${PKI_LIST}
echo "./ca/shared/conf/dtomcat5" >> ${PKI_LIST}
echo "./ocsp/shared/conf/catalina.policy" >> ${PKI_LIST}
echo "./ocsp/shared/conf/dtomcat5" >> ${PKI_LIST}
echo "./tks/shared/conf/catalina.policy" >> ${PKI_LIST}
echo "./tks/shared/conf/dtomcat5" >> ${PKI_LIST}
echo "./kra/shared/conf/catalina.policy" >> ${PKI_LIST}
echo "./kra/shared/conf/dtomcat5" >> ${PKI_LIST}
echo "./setup/pkicommon" >> ${PKI_LIST}
echo "./setup/pkicreate" >> ${PKI_LIST}
echo "./setup/pkihost" >> ${PKI_LIST}
echo "./setup/pkiremove" >> ${PKI_LIST}

# Add 'svn:keywords' properties to ALL files in the list that
# do NOT already contain the SPECIFIED 'svn:keywords' properties
printf "BEGIN:  Processing 'svn:keywords' to ALL files in list . . .\n"
for FILE in `cat ${PKI_LIST}`
do
	# retrieve the current 'svn:keywords' properties set for this file
	KEYWORDS=`svn propget svn:keywords ${FILE}`
	if [ "${KEYWORDS}" = "" ] ; then
		# set the SPECIFIED 'svn:keywords' properties on this file
		svn propset svn:keywords "${SVN_KEYWORDS}" ${FILE}
	elif [ "${KEYWORDS}" != "${SVN_KEYWORDS}" ] ; then
		# Warn the script user if a file in the list contains
		# 'svn:keywords' properties that are DIFFERENT than
		# the SPECIFIED 'svn:keywords' properties
		printf "WARNING:  '${FILE}' ONLY contains the keywords '${KEYWORDS}'!\n"
	fi
done
printf "END:  Finished processing 'svn:keywords' to ALL files in list.\n\n"

# Always remove this list
rm -rf ${PKI_LIST}

# Print post-script instructions
printf "\n"
printf "REMINDER:  ALWAYS remember to execute 'svn commit' on 'pki/base'\n"
printf "           AFTER executing '${PKI_SCRIPT}'!\n\n"