commit: 568bb3ee5558b4d025df691bfeb12065afdef01e Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Fri Nov 27 14:25:08 2015 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Tue Dec 1 22:07:17 2015 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=568bb3ee
systemd.eclass: Introduce a common getter for systemd directories Add a _systemd_get_dir function that serves as a common getter for all directories returned by the eclass. Add proper error handling for the variable getter. eclass/systemd.eclass | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/eclass/systemd.eclass b/eclass/systemd.eclass index 278d319..245e803 100644 --- a/eclass/systemd.eclass +++ b/eclass/systemd.eclass @@ -34,16 +34,32 @@ esac DEPEND="virtual/pkgconfig" -# @FUNCTION: _systemd_get_unitdir +# @FUNCTION: _systemd_get_dir +# @USAGE: <variable-name> <fallback-directory> # @INTERNAL # @DESCRIPTION: -# Get unprefixed unitdir. -_systemd_get_unitdir() { +# Try to obtain the <variable-name> variable from systemd.pc. +# If pkg-config or systemd is not installed, return <fallback-directory> +# instead. +_systemd_get_dir() { + [[ ${#} -eq 2 ]] || die "Usage: ${FUNCNAME} <variable-name> <fallback-directory>" + local variable=${1} fallback=${2} d + if $(tc-getPKG_CONFIG) --exists systemd; then - echo "$($(tc-getPKG_CONFIG) --variable=systemdsystemunitdir systemd)" + d=$($(tc-getPKG_CONFIG) --variable="${variable}" systemd) || die else - echo /usr/lib/systemd/system + d=${fallback} fi + + echo "${d}" +} + +# @FUNCTION: _systemd_get_unitdir +# @INTERNAL +# @DESCRIPTION: +# Get unprefixed unitdir. +_systemd_get_unitdir() { + _systemd_get_dir systemdsystemunitdir /usr/lib/systemd/system } # @FUNCTION: systemd_get_unitdir @@ -62,11 +78,7 @@ systemd_get_unitdir() { # @DESCRIPTION: # Get unprefixed userunitdir. _systemd_get_userunitdir() { - if $(tc-getPKG_CONFIG) --exists systemd; then - echo "$($(tc-getPKG_CONFIG) --variable=systemduserunitdir systemd)" - else - echo /usr/lib/systemd/user - fi + _systemd_get_dir systemduserunitdir /usr/lib/systemd/user } # @FUNCTION: systemd_get_userunitdir @@ -86,11 +98,7 @@ systemd_get_userunitdir() { # @DESCRIPTION: # Get unprefixed utildir. _systemd_get_utildir() { - if $(tc-getPKG_CONFIG) --exists systemd; then - echo "$($(tc-getPKG_CONFIG) --variable=systemdutildir systemd)" - else - echo /usr/lib/systemd - fi + _systemd_get_dir systemdutildir /usr/lib/systemd } # @FUNCTION: systemd_get_utildir