[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-dev
Subject:    [gentoo-dev] [PATCH 1/8] systemd.eclass: Introduce a common getter for systemd directories
From:       Michał Górny <mgorny () gentoo ! org>
Date:       2015-11-30 15:01:15
Message-ID: 1448895682-19312-2-git-send-email-mgorny () gentoo ! org
[Download RAW message or body]

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
-- 
2.6.3


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic