diff --git a/data/zypp-plugin.conf b/data/zypp-plugin.conf index b0a2be30a..0c4f25981 100644 --- a/data/zypp-plugin.conf +++ b/data/zypp-plugin.conf @@ -15,5 +15,13 @@ udev * + + + + + 32 + + diff --git a/scripts/zypp-plugin.py b/scripts/zypp-plugin.py index 110ed3c4c..831dc11be 100755 --- a/scripts/zypp-plugin.py +++ b/scripts/zypp-plugin.py @@ -56,6 +56,8 @@ class Config: def __init__(self): self.solvables = [] + self.self.zypper_extended_description_enabled = False + self.self.zypper_extended_description_length = 0 self.load_file("/etc/snapper/zypp-plugin.conf") @@ -90,6 +92,19 @@ def load_dom(self, dom): except: pass + try: + for tmp3 in dom.getElementsByTagName("description"): + for tmp4 in tmp3.getElementsByTagName("zypper-extended-description"): + string_size = tmp4.childNodes[0].data + description_enabled = tmp4.getAttribute("enabled") + if not description_enabled in [ "true", "false" ]: + loggin.error("unknown extended-config enabled attribute %s" % description_enabled) + continue + if description_enabled == "true": + self.zypper_extended_description_enabled = True + self.zypper_extended_description_length = int(string_size) + except: + pass @@ -145,6 +160,16 @@ def match_solvables(self, names): if found and important: return True, True return found, important + + def zypper_arguments(self): + if basename(readlink("/proc/%d/exe" % getppid())) == "zypper": + argument = " " + " ".join(open("/proc/%s/cmdline" % getppid()).read().split('\x00')[1:]) + else: + return "" + if config.zypper_extended_description_length == 0: + return argument + else: + return argument[0:config.zypper_extended_description_length] def PLUGINBEGIN(self, headers, body): @@ -152,8 +177,9 @@ def PLUGINBEGIN(self, headers, body): logging.info("PLUGINBEGIN") logging.debug("headers: %s" % headers) - - self.description = "zypp(%s)" % basename(readlink("/proc/%d/exe" % getppid())) + self.description = "zypp(%s)" % basename(readlink("/proc/%d/exe" % getppid())) + if config.zypper_extended_description_enabled == True: + self.description.append(self.zypper_arguments()) self.userdata = self.get_userdata(headers) self.ack()