summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTill Maas <opensource@till.name>2014-01-30 18:30:42 +0100
committerTill Maas <opensource@till.name>2014-01-30 18:30:42 +0100
commit1def285eb8709e56632ac49c05c3f786c688310d (patch)
treec4b85b13af1090b9b7f6507090fbcd91d0e9e620
parent96e8c5c1647cac0c51fea37120e21c3963d21269 (diff)
downloadcnucnu-1def285eb8709e56632ac49c05c3f786c688310d.tar.gz
cnucnu-1def285eb8709e56632ac49c05c3f786c688310d.tar.xz
cnucnu-1def285eb8709e56632ac49c05c3f786c688310d.zip
package_list: Support wildcards in package names
-rwxr-xr-xcnucnu/package_list.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/cnucnu/package_list.py b/cnucnu/package_list.py
index 6b0c186..11cb1f6 100755
--- a/cnucnu/package_list.py
+++ b/cnucnu/package_list.py
@@ -23,6 +23,7 @@
__docformat__ = "restructuredtext"
# python default modules
+import fnmatch
import re
# sre_constants contains re exceptions
import sre_constants
@@ -444,9 +445,15 @@ class PackageList:
package_line_regex = re.compile('^\s+\\*\s+(\S+)\s+(.+?)\s+(\S+)\s*$')
for package_data in helper.match_interval(page_text, package_line_regex, "== List Of Packages ==", "<!-- END LIST OF PACKAGES -->"):
(name, regex, url) = package_data
- packages.append(
- Package(name, regex, url, repo, scm, br,
- package_list=self))
+ matched_names = fnmatch.filter(repo.nvr_dict.keys(), name)
+ if len(matched_names) == 0:
+ # Add non-matching name to trigger an error/warning later
+ # FIXME: Properly report bad names
+ matched_names = [name]
+ for name in matched_names:
+ packages.append(
+ Package(name, regex, url, repo, scm, br,
+ package_list=self))
self.packages = packages
self.append = self.packages.append