mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-11-06 15:30:28 +03:00
Support UCM:Tags <pattern> using git tag -l <pattern>
This commit is contained in:
parent
3f0dbe232c
commit
08607a3cd4
3 changed files with 19 additions and 5 deletions
|
|
@ -85,7 +85,7 @@ def check_http(app):
|
||||||
# caution, because it's inappropriate for many projects.
|
# caution, because it's inappropriate for many projects.
|
||||||
# Returns (None, "a message") if this didn't work, or (version, vercode) for
|
# Returns (None, "a message") if this didn't work, or (version, vercode) for
|
||||||
# the details of the current version.
|
# the details of the current version.
|
||||||
def check_tags(app):
|
def check_tags(app, pattern):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
|
|
@ -98,6 +98,8 @@ def check_tags(app):
|
||||||
|
|
||||||
if repotype not in ('git', 'git-svn', 'hg', 'bzr'):
|
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)
|
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...
|
# Set up vcs interface and make sure we have the latest code...
|
||||||
vcs = common.getvcs(app['Repo Type'], app['Repo'], build_dir)
|
vcs = common.getvcs(app['Repo Type'], app['Repo'], build_dir)
|
||||||
|
|
@ -115,7 +117,9 @@ def check_tags(app):
|
||||||
hver = None
|
hver = None
|
||||||
hcode = "0"
|
hcode = "0"
|
||||||
|
|
||||||
for tag in vcs.gettags():
|
tags = vcs.gettags_pattern(pattern) if pattern else vcs.gettags()
|
||||||
|
|
||||||
|
for tag in tags:
|
||||||
logging.info("Check tag: '{0}'".format(tag))
|
logging.info("Check tag: '{0}'".format(tag))
|
||||||
vcs.gotorevision(tag)
|
vcs.gotorevision(tag)
|
||||||
|
|
||||||
|
|
@ -346,8 +350,9 @@ def main():
|
||||||
msg = None
|
msg = None
|
||||||
vercode = None
|
vercode = None
|
||||||
mode = app['Update Check Mode']
|
mode = app['Update Check Mode']
|
||||||
if mode == 'Tags':
|
if mode.startswith('Tags'):
|
||||||
(version, vercode, tag) = check_tags(app)
|
pattern = mode[5:] if len(mode) > 4 else None
|
||||||
|
(version, vercode, tag) = check_tags(app, pattern)
|
||||||
elif mode == 'RepoManifest':
|
elif mode == 'RepoManifest':
|
||||||
(version, vercode) = check_repomanifest(app)
|
(version, vercode) = check_repomanifest(app)
|
||||||
elif mode.startswith('RepoManifest/'):
|
elif mode.startswith('RepoManifest/'):
|
||||||
|
|
|
||||||
|
|
@ -275,6 +275,10 @@ class vcs:
|
||||||
def gettags(self):
|
def gettags(self):
|
||||||
raise VCSException('gettags not supported for this vcs type')
|
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)
|
# Get current commit reference (hash, revision, etc)
|
||||||
def getref(self):
|
def getref(self):
|
||||||
raise VCSException('getref not supported for this vcs type')
|
raise VCSException('getref not supported for this vcs type')
|
||||||
|
|
@ -352,6 +356,11 @@ class vcs_git(vcs):
|
||||||
p = FDroidPopen(['git', 'tag'], cwd=self.local)
|
p = FDroidPopen(['git', 'tag'], cwd=self.local)
|
||||||
return p.stdout.splitlines()
|
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):
|
class vcs_gitsvn(vcs):
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,7 @@ valuetypes = {
|
||||||
[ ]),
|
[ ]),
|
||||||
|
|
||||||
'updatecheckmodes' : FieldType("Update Check Mode",
|
'updatecheckmodes' : FieldType("Update Check Mode",
|
||||||
r"^(Tags|RepoManifest|RepoManifest/.+|RepoTrunk|HTTP|Static|None)$", None,
|
r"^(Tags|Tags .+|RepoManifest|RepoManifest/.+|RepoTrunk|HTTP|Static|None)$", None,
|
||||||
[ "Update Check Mode" ],
|
[ "Update Check Mode" ],
|
||||||
[ ])
|
[ ])
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue