From 409188a4e5c7e970b1acaff9a987f3a909d896a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Mon, 10 Feb 2014 12:20:22 +0100 Subject: [PATCH] Simplify 'Tags ' by using regex on top of vcs.gettags() This automagically enables support for pattern-based tags for all vcs types that support Tags --- fdroidserver/checkupdates.py | 8 +++++--- fdroidserver/common.py | 9 --------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/fdroidserver/checkupdates.py b/fdroidserver/checkupdates.py index 46fe7f7e..8c856f34 100644 --- a/fdroidserver/checkupdates.py +++ b/fdroidserver/checkupdates.py @@ -98,8 +98,6 @@ def check_tags(app, pattern): if repotype not in ('git', 'git-svn', 'hg', 'bzr'): return (None, 'Tags update mode only works for git, hg, bzr and git-svn repositories currently', None) - if pattern and repotype not in ('git'): - return (None, 'Tags with pattern update mode only works for git repositories currently', None) # Set up vcs interface and make sure we have the latest code... vcs = common.getvcs(app['Repo Type'], app['Repo'], build_dir) @@ -117,7 +115,11 @@ def check_tags(app, pattern): hver = None hcode = "0" - tags = vcs.gettags_pattern(pattern) if pattern else vcs.gettags() + tags = vcs.gettags() + if pattern: + print pattern + pat = re.compile(pattern) + tags = [tag for tag in tags if pat.match(tag)] for tag in tags: logging.info("Check tag: '{0}'".format(tag)) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 4509338b..d9721d8c 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -275,10 +275,6 @@ class vcs: def gettags(self): raise VCSException('gettags not supported for this vcs type') - # Get a list of all known tags - def gettags_pattern(self, pattern): - raise VCSException('gettags with pattern not supported for this vcs type') - # Get current commit reference (hash, revision, etc) def getref(self): raise VCSException('getref not supported for this vcs type') @@ -356,11 +352,6 @@ class vcs_git(vcs): p = FDroidPopen(['git', 'tag'], cwd=self.local) return p.stdout.splitlines() - def gettags_pattern(self, pattern): - self.checkrepo() - p = FDroidPopen(['git', 'tag', '-l', pattern], cwd=self.local) - return p.stdout.splitlines() - class vcs_gitsvn(vcs):