diff options
Diffstat (limited to 'meta/recipes-core/systemd/systemd-systemctl/systemctl')
-rwxr-xr-x | meta/recipes-core/systemd/systemd-systemctl/systemctl | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl index 6d19666d82..cddae75a06 100755 --- a/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl | |||
@@ -26,6 +26,9 @@ locations = list() | |||
26 | 26 | ||
27 | class SystemdFile(): | 27 | class SystemdFile(): |
28 | """Class representing a single systemd configuration file""" | 28 | """Class representing a single systemd configuration file""" |
29 | |||
30 | _clearable_keys = ['WantedBy'] | ||
31 | |||
29 | def __init__(self, root, path, instance_unit_name): | 32 | def __init__(self, root, path, instance_unit_name): |
30 | self.sections = dict() | 33 | self.sections = dict() |
31 | self._parse(root, path) | 34 | self._parse(root, path) |
@@ -80,6 +83,14 @@ class SystemdFile(): | |||
80 | v = m.group('value') | 83 | v = m.group('value') |
81 | if k not in section: | 84 | if k not in section: |
82 | section[k] = list() | 85 | section[k] = list() |
86 | |||
87 | # If we come across a "key=" line for a "clearable key", then | ||
88 | # forget all preceding assignments. This works because we are | ||
89 | # processing files in correct parse order. | ||
90 | if k in self._clearable_keys and not v: | ||
91 | del section[k] | ||
92 | continue | ||
93 | |||
83 | section[k].extend(v.split()) | 94 | section[k].extend(v.split()) |
84 | 95 | ||
85 | def get(self, section, prop): | 96 | def get(self, section, prop): |