blob: 982154ab17d6c47bdb7ad89dc0b2082006e9ae79 (
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
########################################################################
#
# Some common functions for use in other FDP scripts
#
########################################################################
FDPDIR=${FDPDIR:-".."}
# Convert ${FDPDIR} into an absolute pathname if needed
case "${FDPDIR}" in
/* )
;;
* )
FDPDIR=${PWD}/${FDPDIR}
;;
esac
FDPBINDIR="${FDPDIR}/docs-common/bin"
FDPPKGDIR="${FDPDIR}/docs-common/packaging"
PRI_LANG=${PRI_LANG:-"en_US"}
RPMINFO=${RPMINFO:-"${PRI_LANG}/rpm-info.xml"}
XSLTPROC=${XSLTPROC:-xsltproc}
XMLFORMAT=${XMLFORMAT:-"${FDPBINDIR}/xmlformat"}
XMLFOPTS=${XMLFOPTS:-"-f ${FDPBINDIR}/xmlformat-fdp.conf"}
rpminfo_exists()
{
if [ ! -f "${RPMINFO}" ]; then
echo "File ${RPMINFO} missing." >&2
return 1
fi
}
get_all_workers()
{
# Return list of workers, in format "email:wholename"
if [ ! -f "${RPMINFO}" ]; then
echo "$0: File '${RPMINFO}' missing." >&2
return 1
fi
${XSLTPROC} "${FDPPKGDIR}/get-all-workers.xsl" \
"${RPMINFO}" | sed 's/^ \+//g' | grep -v '^$' | cat -n
}
get_worker_attribute()
{
# Return an attribute for a specific worker
if [ ! -f "${RPMINFO}" ]; then
echo "$0: File '${RPMINFO}' missing." >&2
return 1
fi
if [ ! -z "$2" ]; then POS=$2 ; fi
if [ ! -z "$1" ]; then ATT="$1" ; fi
${XSLTPROC} --stringparam att "${ATT}" --param pos $POS \
"${FDPPKGDIR}/get-worker.xsl" "${RPMINFO}"
}
get_title()
{
rpminfo_exists && ${XSLTPROC} "${FDPPKGDIR}/get-title.xsl" "${RPMINFO}"
}
get_desc()
{
rpminfo_exists && ${XSLTPROC} "${FDPPKGDIR}/get-desc.xsl" "${RPMINFO}"
}
version()
{
# Return latest revision for an optional role argument
# Don't grumble if we cannot find ${RPMINFO}, because it
# may not have been created yet.
if [ ! -z "$1" ]; then
OPTS="--stringparam role $1"
fi
if [ -f "${RPMINFO}" ]; then
${XSLTPROC} ${OPTS} "${FDPPKGDIR}/doc-version.xsl" "$RPMINFO"
else
echo -n TBD
fi
# The stylesheet doesn't put a NL at the end.
echo
}
date()
{
# Return latest date for an optional role argument
if [ ! -z "$1" ]; then
OPTS="--stringparam role $1"
fi
if [ -f "${RPMINFO}" ]; then
${XSLTPROC} ${OPTS} "${FDPPKGDIR}/doc-date.xsl" "$RPMINFO"
else
echo -n TBD
fi
echo
}
iso2date() {
# Convert ISO format date (YYYY-MM-DD) to ctime(3)
# format, which is needed by the "rpm-info.xml" <revision@date>
case "$#" in
0 ) echo -e "usage: iso2date YYYY-MM-DD ..." >&2
echo -e "\tiso2date YYYY-MM-DD" >&2
echo -e "\tiso2date today" >&2
return 1
;;
1 ) multi=0;;
* ) multi=1;;
esac
for x in $@
do
if [ ${multi} -eq 1 ]; then
echo -ne "${x}\t"
fi
date -d "${x}" +'%a %b %d %Y'
done
}
get_latest_revision() {
version $@
}
get_latest_date() {
date $@
}
validate_rpm_info() {
xmllint --noout --valid ${RPMINFO} && echo ${RPMINFO} OK
}
apply_po() {
if [ $# -ne 1 ]; then
echo "usage: apply_po filename.xml">&2
fi
POFILE=`/usr/bin/dirname "$1"`/`/bin/basename "$1" .xml`.po
if [ ! -f "${POFILE}" ]; then
echo "apply_po: file '${POFILE}' not found." >&2
return 1
fi
xml2po -p "${POFILE}" "$1"
}
prettyprint() {
${XMLFORMAT} ${XMLFOPTS} $@
}
# Local variables:
# mode: sh
# End:
|