From 8f8c5de29a419e3337340639041c74aadb5b62c5 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Sat, 21 Mar 2009 06:53:29 +0100 Subject: [PATCH] Add a trigger to (un)register SGML/XML catalog entries via xmlcatmgr. --HG-- extra : convert_revision : 9dec8c8329e79feefdc43664080795d82a558393 --- shutils/metadata_scripts.sh | 22 +++++++++ triggers/xml-catalog | 89 +++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100755 triggers/xml-catalog diff --git a/shutils/metadata_scripts.sh b/shutils/metadata_scripts.sh index 3da3fcc9873..0c67694149b 100644 --- a/shutils/metadata_scripts.sh +++ b/shutils/metadata_scripts.sh @@ -53,8 +53,30 @@ xbps_write_metadata_scripts_pkg() # export PATH="./bin:./sbin:./usr/bin:./usr/sbin" + _EOF + # + # Handle SGML/XML catalog entries via xmlcatmgr. + # + if [ -n "${sgml_catalogs}" ]; then + for catalog in ${sgml_catalogs}; do + sgml_entries="${sgml_entries} CATALOG ${catalog} --" + done + fi + if [ -n "${sgml_entries}" ]; then + echo "export sgml_entries=\"${sgml_entries}\"" >> $tmpf + fi + if [ -n "${xml_catalogs}" ]; then + for catalog in ${xml_catalogs}; do + xml_entries="${xml_entries} nextCatalog ${catalog} --" + done + fi + if [ -n "${xml_entries}" ]; then + echo "export xml_entries=\"${xml_entries}\"" >> $tmpf + fi + echo >> $tmpf + if [ -n "$triggers" ]; then found=1 echo "case \"\$2\" in" >> $tmpf diff --git a/triggers/xml-catalog b/triggers/xml-catalog new file mode 100755 index 00000000000..f54fc0357fb --- /dev/null +++ b/triggers/xml-catalog @@ -0,0 +1,89 @@ +#!/bin/sh +# +# Registers or unregisters SGML/XML catalog entries, through +# the xmlcatmgr application. +# +# Arguments: $1 = action [run/targets] +# $2 = target [post-install/pre-remove] +# $3 = pkgname +# $4 = version +# +trigger="xml-catalog" +sgml_catalog="./usr/share/sgml/catalog" +xml_catalog="./usr/share/xml/catalog" + +register_entries() +{ + if [ -n "${sgml_entries}" ]; then + echo -n "Registering SGML catalog entries... " + set -- ${sgml_entries} + while [ $# -gt 0 ]; do + xmlcatmgr -sc ${sgml_catalog} add "$1" "$2" "$3" + shift; shift; shift; + done + echo "done." + fi + + if [ -n "${xml_entries}" ]; then + echo -n "Registering XML catalog entries... " + set -- ${xml_entries} + while [ $# -gt 0 ]; do + xmlcatmgr -c ${xml_catalog} add "$1" "$2" "$3" + shift; shift; shift; + done + echo "done." + fi +} + +unregister_entries() +{ + if [ -n "${sgml_entries}" ]; then + echo -n "Unregistering SGML catalog entries... " + set -- ${sgml_entries} + while [ $# -gt 0 ]; do + xmlcatmgr -sc ${sgml_catalog} remove "$1" "$2" \ + 2>/dev/null + shift; shift; shift + done + echo "done." + fi + if [ -n "${xml_entries}" ]; then + echo -n "Unregistering XML catalog entries for... " + set -- ${xml_entries} + while [ $# -gt 0 ]; do + xmlcatmgr -c ${xml_catalog} remove "$1" "$2" \ + 2>/dev/null + shift; shift; shift + done + echo "done." + fi +} + +case "$1" in +targets) + echo "post-install pre-remove" + ;; +run) + [ ! -x $xmlcatmgr ] && exit 0 + [ -n "${sgml_entries}" -a ! -f "${sgml_catalog}" ] && exit 0 + [ -n "${xml_entries}" -a ! -f "${xml_catalog}" ] && exit 0 + + echo "Running $trigger trigger..." + case "$2" in + post-install) + register_entries + ;; + pre-remove) + unregister_entries + ;; + *) + exit 1 + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0