>>>>> On Wed, 04 Sep 2019, Michał Górny wrote: > +# Copyright 2019 Gentoo Authors > +# Distributed under the terms of the GNU General Public License v2 > + > +# @ECLASS: sgml-catalog-r1.eclass > +# @MAINTAINER: > +# Michał Górny <[email protected]> > +# @AUTHOR: > +# Michał Górny <[email protected]> > +# @BLURB: Functions for installing SGML catalogs > +# @DESCRIPTION: > +# sgml-catalog-r1 provides postinst/postrm for regenerating > +# /etc/sgml/catalog to include all installed catalogs.
catalog...catalog...catalog...
Certainly the style could be improved? How about: "This eclass
regenerates /etc/sgml/catalog in pkg_postinst and pkg_postrm."?
> +
> +case "${EAPI:-0}" in
Quotes aren't necessary here.
> + 7)
> + ;;
> + *)
> + die "Unsupported EAPI=${EAPI} for ${ECLASS}"
> + ;;
> +esac
This case statement could be more compact (which would be better
readable, IMHO).
> +
> +EXPORT_FUNCTIONS pkg_postinst pkg_postrm
> +
> +if [[ ! ${_SGML_CATALOG_R1} ]]; then
> +
> +RDEPEND=">=app-text/sgml-common-0.6.3-r7"
> +
> +# @FUNCTION: sgml-catalog-r1_update_catalog
> +# @DESCRIPTION:
> +# Regenerate /etc/sgml/catalog to include all installed catalogs.
> +sgml-catalog-r1_update_catalog() {
> + local shopt_save=$(shopt -p nullglob)
> + shopt -s nullglob
> + local cats=( "${EROOT}"/etc/sgml/*.cat )
> + ${shopt_save}
> +
> + if [[ ${#cats[@]} -gt 0 ]]; then
> + ebegin "Updating ${EROOT}/etc/sgml/catalog"
> + printf 'CATALOG "%s"\n' "${cats[@]}" > "${T}"/catalog &&
> + mv "${T}"/catalog "${EROOT}"/etc/sgml/catalog
> + else
> + ebegin "Removing ${EROOT}/etc/sgml/catalog"
> + rm "${EROOT}"/etc/sgml/catalog &&
> + { rmdir "${EROOT}"/etc/sgml &>/dev/null || :; }
> + fi
> + eend "${?}"
Using one eend for each ebegin would improve readability. Also, quotes
around $? aren't necessary.
> +}
> +
> +# @FUNCTION: sgml-catalog-r1_update_env
> +# @DESCRIPTION:
> +# Regenerate environment variables and copy them to env.d.
> +sgml-catalog-r1_update_env() {
> + # gensgmlenv doesn't support overriding root
> + if [[ -z ${ROOT} && -x "${EPREFIX}/usr/bin/gensgmlenv" ]]; then
> + ebegin "Regenerating SGML environment variables"
> + gensgmlenv &&
> + grep -v export "${EPREFIX}/etc/sgml/sgml.env" >
> "${T}"/93sgmltools-lite &&
> + mv "${T}"/93sgmltools-lite
> "${EPREFIX}/etc/env.d/93sgmltools-lite"
> + eend "${?}"
> + fi
> +}
> +
> +# @FUNCTION: sgml-catalog-r1_pkg_postinst
> +# @DESCRIPTION:
> +# Perform catalog post installation tasks.
Sure, what else would postinst do? :)
> +sgml-catalog-r1_pkg_postinst() {
> + sgml-catalog-r1_update_catalog
> + sgml-catalog-r1_update_env
> +}
> +
> +# @FUNCTION: sgml-catalog-r1_pkg_postrm
> +# @DESCRIPTION:
> +# Perform catalog post removal tasks.
> +sgml-catalog-r1_pkg_postrm() {
> + sgml-catalog-r1_update_catalog
> + sgml-catalog-r1_update_env
> +}
> +
> +_SGML_CATALOG_R1=1
> +fi
signature.asc
Description: PGP signature
