From 6da44cf0f0b07ffd6376dfa6a0835b82e16d253d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Luttringer?= Date: Fri, 16 Oct 2015 23:10:57 +0200 Subject: [PATCH] Split version and release pattern matching --- agetpkg | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/agetpkg b/agetpkg index 1a85dc9..fd5db0f 100755 --- a/agetpkg +++ b/agetpkg @@ -227,10 +227,11 @@ class Archive(object): return self.remote_index.download(self.local_index) debug("Remote and local indexes seems equal. No update.") - def search(self, name_pattern, version_pattern, arch_list=None): + def search(self, name_pattern, version_pattern, release_pattern, arch_list=None): """Search for a package """ name_regex = recompile(name_pattern) version_regex = recompile(version_pattern) if version_pattern is not None else None + release_regex = recompile(release_pattern) if release_pattern is not None else None res = list() for pkg in self._index.values(): if name_regex.search(pkg.name): @@ -240,7 +241,11 @@ class Archive(object): continue # check against version if version_regex is not None: - if not version_regex.search(pkg.full_version): + if not version_regex.search(pkg.version): + continue + # check against release + if release_regex is not None: + if not release_regex.search(pkg.release): continue res += [pkg] return res @@ -339,6 +344,8 @@ def parse_argv(): help="regex to match a package name") p_main.add_argument("version", nargs="?", help="regex to match a package version") + p_main.add_argument("release", nargs="?", + help="regex to match a package release") return p_main.parse_args() def main(): @@ -352,7 +359,7 @@ def main(): # init archive interface archive = Archive(args.url, args.timeout, args.update) # select target pacakges - packages = archive.search(args.package, args.version, args.arch) + packages = archive.search(args.package, args.version, args.release, args.arch) if len(packages) == 0: print("No match found.") exit(0) -- GitLab