classes-dbus: General refactoring
Take the more idiomatic approach of iterating on
DBUS_PACKAGES to find files.
Change-Id: I7656316b839f666bd1b25b757bef2c14a2cee326
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/classes/obmc-phosphor-dbus-service.bbclass b/classes/obmc-phosphor-dbus-service.bbclass
index e6132fa..3277cdb 100644
--- a/classes/obmc-phosphor-dbus-service.bbclass
+++ b/classes/obmc-phosphor-dbus-service.bbclass
@@ -1,20 +1,45 @@
-# Common code for applications providing a D-Bus service.
-
-# Class users should define DBUS_SERVICES prior to including.
+# Utilities and shortcuts for recipes providing D-Bus services.
+# Variables:
+# DBUS_PACKAGES ?= "${PN}"
+# The list of packages to which files should be added.
+#
+# DBUS_SERVICE_${PN} += "org.openbmc.Foo"
+# A list of dbus service names. The class will look for a dbus
+# configuration file with the same name with .conf appended.
+#
+inherit dbus-dir
+inherit obmc-phosphor-utils
RDEPENDS_${PN} += "dbus-perms"
+DBUS_PACKAGES ?= "${PN}"
+
+_INSTALL_DBUS_CONFIGS=""
+
python() {
- services = d.getVar('DBUS_SERVICES', True)
- if services:
- uris = " ".join( [ 'file://' + s + '.conf' for s in services.split() ] )
- d.appendVar('SRC_URI', ' ' + uris + ' ')
+ searchpaths = d.getVar('FILESPATH', True)
+
+ def add_dbus_config(d, service, pkg):
+ set_append(d, 'SRC_URI', 'file://%s.conf' % service)
+ set_append(d, 'FILES_%s' % pkg, '%s%s.conf' \
+ % (d.getVar('dbus_system_confdir', True), service))
+ set_append(d, '_INSTALL_DBUS_CONFIGS', '%s.conf' % service)
+
+
+ for pkg in listvar_to_list(d, 'DBUS_PACKAGES'):
+ services = listvar_to_list(d, 'DBUS_SERVICE_%s' % pkg)
+
+ for service in services:
+ add_dbus_config(d, service, pkg)
}
+
do_install_append() {
- # install the service configuration files
- install -d ${D}${sysconfdir}/dbus-1/system.d
- for s in ${DBUS_SERVICES}; do
- install ${WORKDIR}/$s.conf ${D}${sysconfdir}/dbus-1/system.d/$s.conf
+ # install the dbus configuration files
+ [ -z "${_INSTALL_DBUS_CONFIGS}" ] || \
+ install -d ${D}${dbus_system_confdir}
+ for c in ${_INSTALL_DBUS_CONFIGS}; do
+ install -m 0644 ${WORKDIR}/$c \
+ ${D}${dbus_system_confdir}$c
done
}