diff options
| author | Artur Kowalski <arturkow2000@gmail.com> | 2025-01-20 13:46:01 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-01-21 12:07:56 +0000 |
| commit | 8c5a6ca6f991c65eac1d6b4235fddc6e99778501 (patch) | |
| tree | 851f2dd5d30cc625b84121b0dfc903055cfd53ac /meta | |
| parent | 7ed8900926baf35e2da1d3170e435d2c6c612b63 (diff) | |
| download | poky-8c5a6ca6f991c65eac1d6b4235fddc6e99778501.tar.gz | |
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>
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/classes-recipe/systemd.bbclass | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/meta/classes-recipe/systemd.bbclass b/meta/classes-recipe/systemd.bbclass index c167689d2a..14fef2d7a6 100644 --- a/meta/classes-recipe/systemd.bbclass +++ b/meta/classes-recipe/systemd.bbclass | |||
| @@ -68,6 +68,28 @@ systemd_populate_packages[vardeps] += "systemd_prerm systemd_postinst" | |||
| 68 | systemd_populate_packages[vardepsexclude] += "OVERRIDES" | 68 | systemd_populate_packages[vardepsexclude] += "OVERRIDES" |
| 69 | 69 | ||
| 70 | 70 | ||
| 71 | def systemd_service_path(service, searchpaths, d): | ||
| 72 | path_found = '' | ||
| 73 | |||
| 74 | # Deal with adding, for example, 'ifplugd@eth0.service' from | ||
| 75 | # 'ifplugd@.service' | ||
| 76 | base = None | ||
| 77 | at = service.find('@') | ||
| 78 | if at != -1: | ||
| 79 | ext = service.rfind('.') | ||
| 80 | base = service[:at] + '@' + service[ext:] | ||
| 81 | |||
| 82 | for path in searchpaths: | ||
| 83 | if os.path.lexists(oe.path.join(d.getVar("D"), path, service)): | ||
| 84 | path_found = path | ||
| 85 | break | ||
| 86 | elif base is not None: | ||
| 87 | if os.path.exists(oe.path.join(d.getVar("D"), path, base)): | ||
| 88 | path_found = path | ||
| 89 | break | ||
| 90 | |||
| 91 | return path_found, base | ||
| 92 | |||
| 71 | python systemd_populate_packages() { | 93 | python systemd_populate_packages() { |
| 72 | import re | 94 | import re |
| 73 | import shlex | 95 | import shlex |
| @@ -158,24 +180,7 @@ python systemd_populate_packages() { | |||
| 158 | # scan for all in SYSTEMD_SERVICE[] | 180 | # scan for all in SYSTEMD_SERVICE[] |
| 159 | for pkg_systemd in systemd_packages.split(): | 181 | for pkg_systemd in systemd_packages.split(): |
| 160 | for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split(): | 182 | for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split(): |
| 161 | path_found = '' | 183 | path_found, base = systemd_service_path(service, searchpaths, d) |
| 162 | |||
| 163 | # Deal with adding, for example, 'ifplugd@eth0.service' from | ||
| 164 | # 'ifplugd@.service' | ||
| 165 | base = None | ||
| 166 | at = service.find('@') | ||
| 167 | if at != -1: | ||
| 168 | ext = service.rfind('.') | ||
| 169 | base = service[:at] + '@' + service[ext:] | ||
| 170 | |||
| 171 | for path in searchpaths: | ||
| 172 | if os.path.lexists(oe.path.join(d.getVar("D"), path, service)): | ||
| 173 | path_found = path | ||
| 174 | break | ||
| 175 | elif base is not None: | ||
| 176 | if os.path.exists(oe.path.join(d.getVar("D"), path, base)): | ||
| 177 | path_found = path | ||
| 178 | break | ||
| 179 | 184 | ||
| 180 | if path_found != '': | 185 | if path_found != '': |
| 181 | systemd_add_files_and_parse(pkg_systemd, path_found, service) | 186 | systemd_add_files_and_parse(pkg_systemd, path_found, service) |
