diff options
author | Till Maas <opensource@till.name> | 2014-01-30 18:30:42 +0100 |
---|---|---|
committer | Till Maas <opensource@till.name> | 2014-01-30 18:30:42 +0100 |
commit | 1def285eb8709e56632ac49c05c3f786c688310d (patch) | |
tree | c4b85b13af1090b9b7f6507090fbcd91d0e9e620 | |
parent | 96e8c5c1647cac0c51fea37120e21c3963d21269 (diff) | |
download | cnucnu-1def285eb8709e56632ac49c05c3f786c688310d.tar.gz cnucnu-1def285eb8709e56632ac49c05c3f786c688310d.tar.xz cnucnu-1def285eb8709e56632ac49c05c3f786c688310d.zip |
package_list: Support wildcards in package names
-rwxr-xr-x | cnucnu/package_list.py | 13 |
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 |