summaryrefslogtreecommitdiffstats
path: root/bin/fdp-functions
blob: d534421609835246800106f56561e2cf2e5ddae1 (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
########################################################################
#
# 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"}
RPMINFO=${RPMINFO:-"${PRI_LANG}/rpm-info.xml"}
XSLTPROC=${XSLTPROC:-xsltproc}
XMLFORMAT=${XMLFORMAT:-"${FDPBINDIR}/xmlformat"}
XMLFOPTS=${XMLFOPTS:-"-f ${FDPBINDIR}/xmlformat-fdp.conf"}

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}"
}

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
}

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 $@
}

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} $@
}