summaryrefslogtreecommitdiffstats
path: root/bin/fdp-functions
blob: 316450e902b5c7ddfe9c6aaec9aece0f823422a6 (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
########################################################################
#
# Some common functions for use in other FDP scripts
#
########################################################################


FDPDIR=${FDPDIR:-".."}
FDPBINDIR="${FDPDIR}/docs-common/bin"
FDPPKGDIR="${FDPDIR}/docs-common/packaging"
RPMINFO=${RPMINFO:-"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 gumble if we cannot find ${RPMINF}, 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 XXX
	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
}