[Demudi-commits] r165 - in demudi-menu/trunk: . debian

Free Ekanayaka free-guest@haydn.debian.org
Thu, 11 Nov 2004 06:11:53 -0700


Author: free-guest
Date: 2004-11-11 06:11:27 -0700 (Thu, 11 Nov 2004)
New Revision: 165

Modified:
   demudi-menu/trunk/debian/changelog
   demudi-menu/trunk/demudi-menu
Log:
demudi-menu (0.2) unstable; urgency=low

  * Changed the parser to cope with multiple tags

 -- Free Ekanayaka <free@agnula.org>  Mon,  8 Nov 2004 17:31:01 +0100

Modified: demudi-menu/trunk/debian/changelog
===================================================================
--- demudi-menu/trunk/debian/changelog	2004-11-11 08:42:42 UTC (rev 164)
+++ demudi-menu/trunk/debian/changelog	2004-11-11 13:11:27 UTC (rev 165)
@@ -1,3 +1,9 @@
+demudi-menu (0.2) unstable; urgency=low
+
+  * Changed the parser to cope with multiple tags
+
+ -- Free Ekanayaka <free@agnula.org>  Mon,  8 Nov 2004 17:31:01 +0100
+
 demudi-menu (0.1) unstable; urgency=low
 
   * Initial Release.

Modified: demudi-menu/trunk/demudi-menu
===================================================================
--- demudi-menu/trunk/demudi-menu	2004-11-11 08:42:42 UTC (rev 164)
+++ demudi-menu/trunk/demudi-menu	2004-11-11 13:11:27 UTC (rev 165)
@@ -15,18 +15,37 @@
 entries = ((file( '/etc/debtags/tagpatch.d/demudi', 'r')).read()).split('\n')
 entries.pop()
 
-skip = ['demudi::base','demudi::fluxbox','demudi::gnome']
+prefix = 'section'
 
+skip = ['base', 'fluxbox', 'gnome']
+
 for entry in entries:
-    package = (string.split(entry,":"))[0]
-    tag = string.split(entry,"+")[1]
-    if tag in skip:
+    pattern = re.compile("^([^:]*):(.*)$")
+    match = pattern.match(entry)
+    if match:
+        package = match.group(1)
+        tags    = string.split(re.sub('[ \t+]*', '', match.group(2)),',')
+        for tag in tags:
+            pattern = re.compile("%s::(.*)" % (prefix))
+            match = pattern.match(tag)
+            if match:
+                menu = match.group(1)
+                break
+            else:
+                menu = "miscellanea"
+                continue
+    else:
+        # error
         continue
-    title = ""
-    for section in string.split(tag,"::"):
+
+    if menu in skip:
+            continue
+
+    title = "Sound"
+
+    for section in string.split(menu,"::"):
         section.capitalize()
         title = title + "/" + section.capitalize()
-        title = re.sub('/Demudi', 'Sound', title)
 
     try:
         menu = ((file( '/usr/lib/menu/%s' % (package), 'r')).read())