mirror of
https://git.yoctoproject.org/poky
synced 2026-04-29 00:32:14 +02:00
systemd.bbclass: factor out service lookup logic into separate function
Factor out the logic into systemd_service_path(). This will be needed by following commits to avoid code duplication. (From OE-Core rev: d383e18138050490f3dcb95377f63a2a31c3149f) Signed-off-by: Artur Kowalski <arturkow2000@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
7ed8900926
commit
8c5a6ca6f9
@@ -68,6 +68,28 @@ systemd_populate_packages[vardeps] += "systemd_prerm systemd_postinst"
|
||||
systemd_populate_packages[vardepsexclude] += "OVERRIDES"
|
||||
|
||||
|
||||
def systemd_service_path(service, searchpaths, d):
|
||||
path_found = ''
|
||||
|
||||
# Deal with adding, for example, 'ifplugd@eth0.service' from
|
||||
# 'ifplugd@.service'
|
||||
base = None
|
||||
at = service.find('@')
|
||||
if at != -1:
|
||||
ext = service.rfind('.')
|
||||
base = service[:at] + '@' + service[ext:]
|
||||
|
||||
for path in searchpaths:
|
||||
if os.path.lexists(oe.path.join(d.getVar("D"), path, service)):
|
||||
path_found = path
|
||||
break
|
||||
elif base is not None:
|
||||
if os.path.exists(oe.path.join(d.getVar("D"), path, base)):
|
||||
path_found = path
|
||||
break
|
||||
|
||||
return path_found, base
|
||||
|
||||
python systemd_populate_packages() {
|
||||
import re
|
||||
import shlex
|
||||
@@ -158,24 +180,7 @@ python systemd_populate_packages() {
|
||||
# scan for all in SYSTEMD_SERVICE[]
|
||||
for pkg_systemd in systemd_packages.split():
|
||||
for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split():
|
||||
path_found = ''
|
||||
|
||||
# Deal with adding, for example, 'ifplugd@eth0.service' from
|
||||
# 'ifplugd@.service'
|
||||
base = None
|
||||
at = service.find('@')
|
||||
if at != -1:
|
||||
ext = service.rfind('.')
|
||||
base = service[:at] + '@' + service[ext:]
|
||||
|
||||
for path in searchpaths:
|
||||
if os.path.lexists(oe.path.join(d.getVar("D"), path, service)):
|
||||
path_found = path
|
||||
break
|
||||
elif base is not None:
|
||||
if os.path.exists(oe.path.join(d.getVar("D"), path, base)):
|
||||
path_found = path
|
||||
break
|
||||
path_found, base = systemd_service_path(service, searchpaths, d)
|
||||
|
||||
if path_found != '':
|
||||
systemd_add_files_and_parse(pkg_systemd, path_found, service)
|
||||
|
||||
Reference in New Issue
Block a user