summaryrefslogtreecommitdiffstats
path: root/base/scripts/pkimanifest
blob: 31d443cfc4d36866c788cab4730042aac358ca8e (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
98
99
100
#!/bin/bash
# BEGIN COPYRIGHT BLOCK
# (C) 2010 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK

# Define global constants
FOOTER="TIMING - ======== Finished Processing PKI Manifest ========"
HEADER="TIMING - ======== Started Processing PKI Manifest ========"
MANIFEST="manifest"
PKI="pki"
SCRIPTS="scripts"
SVN=".svn"

# Define global variables
pki_date=`date +%Y%m%d%H%M%S`
pki_dir=""
pki_manifest=""

# Define functions
Usage()
{
	printf "Usage 1:  `basename ${0}`\n"
	printf "Usage 2:  `basename ${0}` source_path manifest_file\n\n"
    printf "          where 'Usage 1' must be explicitly executed\n"
    printf "          from one of the following subdirectories:\n\n"
    printf "              pki/base/scripts,\n"
    printf "              pki/dogtag/scripts, or\n"
    printf "              pki/redhat/scripts\n\n"
}

# Check for valid number of arguments to shell script
if [ $# -eq 2 ] ; then
	# Check that source path is a directory
	if [ ! -d ${1} ] ; then
		printf "The source path '${1}' does not exist!\n\n"
		Usage
		exit 255
	fi

	# Initialize variables
	pki_dir=${1}
	pki_manifest=${2}.${pki_date}
elif [ $# -eq 0 ] ; then
	# Remember current location
	pki_pwd=`pwd`

	# Check that this script is being run from an appropriate directory
	if [ "`basename ${pki_pwd}`" != "${SCRIPTS}" ] ; then
		printf "The '`basename ${0}`' script is NOT being executed "
		printf "from a valid subdirectory!\n\n"
		Usage
		exit 255
	fi

	# Obtain the source directory related to this PKI manifest
	pki_src_dir=`cd .. ; pwd | xargs basename ; cd ./${SCRIPTS}`

	# Always switch into the base directory three levels
	# above this shell script prior to executing it so
	# that all of its output is written to this directory
	cd ${pki_pwd}/../../..

	# Initialize variables
	pki_dir="${PKI}/${pki_src_dir}"
	pki_manifest="`pwd`/${PKI}.${pki_src_dir}.${MANIFEST}.${pki_date}"
else
	Usage
	exit 255
fi

# Compose alphabetical list of specified source files
pki_now=`date`
echo "TIMING - ======== Started Generating Source File List  ========"
echo "${pki_now}"
process_pki_tree=`find ${pki_dir} -name ${SVN} -prune -o -type f -print | sort`
echo "${pki_now}"
echo "TIMING - ======== Finished Generating Source File List ========"
echo

# Generate PKI Manifest
pki_now=`date`
echo "${HEADER}"
echo "${pki_now}"

printf "${HEADER}\n"    >  ${pki_manifest}
printf "${pki_now}\n\n" >> ${pki_manifest}
for f in "${process_pki_tree}"
do
	echo "Processing ${f} . . ."
	svn info ${f}       >> ${pki_manifest}
done
pki_now=`date`
printf "${pki_now}\n"   >> ${pki_manifest}
printf "${FOOTER}\n"    >> ${pki_manifest}

echo "${pki_now}"
echo "${FOOTER}"
echo