summaryrefslogtreecommitdiffstats
path: root/bin/fdp-functions
blob: c56fac5dba846c2990779cdf649727b3eb50692b (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
154
########################################################################
#
# 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}
XSLTPROCOPTS=${XSLTPROCOPTS:-"--path ${FDPDIR}/docs-common/common/entities:${FDPDIR}/docs-common/packaging"}
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} ${XSLTPROCOPTS} "${FDPPKGDIR}/get-title.xsl" "${RPMINFO}"
}

get_desc()
{
    rpminfo_exists && ${XSLTPROC} ${XSLTPROCOPTS} "${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} ${XSLTPROCOPTS} ${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: