summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/sgml-catalog.eclass')
-rw-r--r--eclass/sgml-catalog.eclass101
1 files changed, 101 insertions, 0 deletions
diff --git a/eclass/sgml-catalog.eclass b/eclass/sgml-catalog.eclass
new file mode 100644
index 00000000000..9b5215d6690
--- /dev/null
+++ b/eclass/sgml-catalog.eclass
@@ -0,0 +1,101 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# @ECLASS: sgml-catalog.eclass
+# @MAINTAINER:
+# SGML Herd <sgml@gentoo.org>
+# @AUTHOR:
+# Author Matthew Turk <satai@gentoo.org>
+# @BLURB: Functions for installing SGML catalogs
+
+inherit base
+
+DEPEND=">=app-text/sgml-common-0.6.3-r2"
+
+# @ECLASS-VARIABLE: SGML_TOINSTALL
+# @DESCRIPTION:
+# An array of catalogs, arranged in pairs.
+# Each pair consists of a centralized catalog followed by an ordinary catalog.
+SGML_TOINSTALL=()
+
+# @FUNCTION: sgml-catalog_cat_include
+# @USAGE: <centralized catalog> <ordinary catalog>
+# @DESCRIPTION:
+# Appends a catalog pair to the SGML_TOINSTALL array.
+sgml-catalog_cat_include() {
+ debug-print function $FUNCNAME $*
+ SGML_TOINSTALL+=("$1" "$2")
+}
+
+# @FUNCTION: sgml-catalog_cat_doinstall
+# @USAGE: <centralized catalog> <ordinary catalog>
+# @DESCRIPTION:
+# Adds an ordinary catalog to a centralized catalog.
+sgml-catalog_cat_doinstall() {
+ debug-print function $FUNCNAME $*
+ has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
+ "${EPREFIX}"/usr/bin/install-catalog --add "${EPREFIX}$1" "${EPREFIX}$2" &>/dev/null
+}
+
+# @FUNCTION: sgml-catalog_cat_doremove
+# @USAGE: <centralized catalog> <ordinary catalog>
+# @DESCRIPTION:
+# Removes an ordinary catalog from a centralized catalog.
+sgml-catalog_cat_doremove() {
+ debug-print function $FUNCNAME $*
+ has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
+ "${EPREFIX}"/usr/bin/install-catalog --remove "${EPREFIX}$1" "${EPREFIX}$2" &>/dev/null
+}
+
+sgml-catalog_pkg_postinst() {
+ debug-print function $FUNCNAME $*
+ has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
+
+ set -- "${SGML_TOINSTALL[@]}"
+
+ while (( $# )); do
+ if [[ ! -e "${EPREFIX}$2" ]]; then
+ ewarn "${EPREFIX}$2 doesn't appear to exist, although it ought to!"
+ shift 2
+ continue
+ fi
+ einfo "Now adding ${EPREFIX}$2 to ${EPREFIX}$1 and ${EPREFIX}/etc/sgml/catalog"
+ sgml-catalog_cat_doinstall "$1" "$2"
+ shift 2
+ done
+ sgml-catalog_cleanup
+}
+
+sgml-catalog_pkg_prerm() {
+ sgml-catalog_cleanup
+}
+
+sgml-catalog_pkg_postrm() {
+ debug-print function $FUNCNAME $*
+ has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
+
+ set -- "${SGML_TOINSTALL[@]}"
+
+ while (( $# )); do
+ einfo "Now removing ${EPREFIX}$2 from ${EPREFIX}$1 and ${EPREFIX}/etc/sgml/catalog"
+ sgml-catalog_cat_doremove "$1" "$2"
+ shift 2
+ done
+}
+
+sgml-catalog_cleanup() {
+ has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
+ if [ -e "${EPREFIX}/usr/bin/gensgmlenv" ]
+ then
+ einfo Regenerating SGML environment variables ...
+ gensgmlenv
+ grep -v export "${EPREFIX}/etc/sgml/sgml.env" > "${EPREFIX}/etc/env.d/93sgmltools-lite"
+ fi
+}
+
+sgml-catalog_src_compile() {
+ return
+}
+
+EXPORT_FUNCTIONS pkg_postrm pkg_postinst src_compile pkg_prerm