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()