summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmeta/recipes-core/systemd/systemd-systemctl/systemctl11
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
27class SystemdFile(): 27class 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):