summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eclass/ChangeLog5
-rw-r--r--eclass/sgml-catalog.eclass59
2 files changed, 43 insertions, 21 deletions
diff --git a/eclass/ChangeLog b/eclass/ChangeLog
index bf154747b8e2..b58b77fc843c 100644
--- a/eclass/ChangeLog
+++ b/eclass/ChangeLog
@@ -1,6 +1,9 @@
# ChangeLog for eclass directory
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.181 2012/03/23 06:16:15 floppym Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.182 2012/03/23 07:30:54 floppym Exp $
+
+ 23 Mar 2012; Mike Gilbert <floppym@gentoo.org> sgml-catalog.eclass:
+ Convert SGML_TOINSTALL to a bash array. Add some documentation.
23 Mar 2012; Mike Gilbert <floppym@gentoo.org> sgml-catalog.eclass:
PMS says that postrm runs before postinst, so remove workaround in
diff --git a/eclass/sgml-catalog.eclass b/eclass/sgml-catalog.eclass
index 931108cb9fbb..b717b91de7fc 100644
--- a/eclass/sgml-catalog.eclass
+++ b/eclass/sgml-catalog.eclass
@@ -1,29 +1,47 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/sgml-catalog.eclass,v 1.18 2012/03/23 06:16:15 floppym Exp $
-#
+# $Header: /var/cvsroot/gentoo-x86/eclass/sgml-catalog.eclass,v 1.19 2012/03/23 07:30:54 floppym Exp $
+
+# @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=()
-# List of catalogs to install
-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="${SGML_TOINSTALL} ${1}:${2}"
+ 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=
@@ -34,16 +52,16 @@ sgml-catalog_pkg_postinst() {
debug-print function $FUNCNAME $*
has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
- for entry in ${SGML_TOINSTALL}; do
- arg1=${entry%%:*}
- arg2=${entry#*:}
- if [ ! -e "${EPREFIX}"${arg2} ]
- then
- ewarn "${EPREFIX}${arg2} doesn't appear to exist, although it ought to!"
+ set -- "${SGML_TOINSTALL[@]}"
+
+ while (( $# )); do
+ if [[ ! -e "${EPREFIX}$2" ]]; then
+ ewarn "${EPREFIX}$2 doesn't appear to exist, although it ought to!"
continue
fi
- einfo "Now adding ${EPREFIX}${arg2} to ${EPREFIX}${arg1} and ${EPREFIX}/etc/sgml/catalog"
- sgml-catalog_cat_doinstall ${arg1} ${arg2}
+ 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
}
@@ -56,11 +74,12 @@ sgml-catalog_pkg_postrm() {
debug-print function $FUNCNAME $*
has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
- for entry in ${SGML_TOINSTALL}; do
- arg1=${entry%%:*}
- arg2=${entry#*:}
- einfo "Now removing ${EPREFIX}${arg2} from ${EPREFIX}${arg1} and ${EPREFIX}/etc/sgml/catalog"
- sgml-catalog_cat_doremove ${arg1} ${arg2}
+ 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
}