diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2016-07-13 17:56:34 -0400 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2016-07-28 14:35:37 -0400 |
commit | 8ffb402ac41c87b3b78c72d979168b0a2ada5fb5 (patch) | |
tree | 4e14a4815fe80a57ef202d7994f8e841686dbad7 /meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass | |
parent | 49a7698af82650ce5dd87bb4e52d20e0d209d022 (diff) | |
download | talos-openbmc-8ffb402ac41c87b3b78c72d979168b0a2ada5fb5.tar.gz talos-openbmc-8ffb402ac41c87b3b78c72d979168b0a2ada5fb5.zip |
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>
Diffstat (limited to 'meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass')
-rw-r--r-- | meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass b/meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass index e6132faa7..3277cdb48 100644 --- a/meta-phosphor/classes/obmc-phosphor-dbus-service.bbclass +++ b/meta-phosphor/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 } |