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