1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-10 01:10:11 +01:00

Added auto-update mode

This commit is contained in:
Ciaran Gultnieks 2012-09-20 14:16:55 +01:00
parent fda286b1e3
commit aef5b74437
2 changed files with 39 additions and 3 deletions

View File

@ -181,7 +181,9 @@ def main():
parser.add_option("-v", "--verbose", action="store_true", default=False, parser.add_option("-v", "--verbose", action="store_true", default=False,
help="Spew out even more information than normal") help="Spew out even more information than normal")
parser.add_option("-p", "--package", default=None, parser.add_option("-p", "--package", default=None,
help="Build only the specified package") help="Check only the specified package")
parser.add_option("--auto", action="store_true", default=False,
help="Process auto-updates")
(options, args) = parser.parse_args() (options, args) = parser.parse_args()
# Get all apps... # Get all apps...
@ -197,6 +199,8 @@ def main():
for app in apps: for app in apps:
print "Processing " + app['id'] + '...' print "Processing " + app['id'] + '...'
writeit = False
mode = app['Update Check Mode'] mode = app['Update Check Mode']
if mode == 'Market': if mode == 'Market':
(version, vercode) = check_market(app) (version, vercode) = check_market(app)
@ -219,6 +223,36 @@ def main():
print '...updating to version:' + version + ' vercode:' + vercode print '...updating to version:' + version + ' vercode:' + vercode
app['Current Version'] = version app['Current Version'] = version
app['Current Version Code'] = str(int(vercode)) app['Current Version Code'] = str(int(vercode))
writeit = True
if options.auto:
mode = app['Auto Update Mode']
if mode == 'None':
pass
elif mode.startswith('Version '):
pattern = mode[8:]
gotcur = False
latest = None
for build in app['builds']:
if build['vercode'] == app['Current Version Code']:
gotcur = True
if not latest or build['vercode'] > latest['vercode']:
latest = build
if not gotcur:
newbuild = latest.copy()
del newbuild['origlines']
newbuild['vercode'] = app['Current Version Code']
newbuild['version'] = app['Current Version']
print "...auto-generating build for " + newbuild['version']
commit = pattern.replace('%v', newbuild['version'])
commit = commit.replace('%c', newbuild['vercode'])
newbuild['commit'] = commit
app['builds'].append(newbuild)
writeit = True
else:
print 'Invalid auto update mode'
if writeit:
metafile = os.path.join('metadata', app['id'] + '.txt') metafile = os.path.join('metadata', app['id'] + '.txt')
common.write_metadata(metafile, app) common.write_metadata(metafile, app)

View File

@ -426,6 +426,7 @@ def parse_metadata(metafile, **kw):
thisinfo['Disabled'] = None thisinfo['Disabled'] = None
thisinfo['AntiFeatures'] = None thisinfo['AntiFeatures'] = None
thisinfo['Update Check Mode'] = 'Market' thisinfo['Update Check Mode'] = 'Market'
thisinfo['Auto Update Mode'] = 'None'
thisinfo['Current Version'] = '' thisinfo['Current Version'] = ''
thisinfo['Current Version Code'] = '0' thisinfo['Current Version Code'] = '0'
thisinfo['Repo Type'] = '' thisinfo['Repo Type'] = ''
@ -594,6 +595,7 @@ def write_metadata(dest, app):
mf.write('\n') mf.write('\n')
if len(app['builds']) > 0: if len(app['builds']) > 0:
mf.write('\n') mf.write('\n')
writefield('Auto Update Mode')
writefield('Update Check Mode') writefield('Update Check Mode')
if len(app['Current Version']) > 0: if len(app['Current Version']) > 0:
writefield('Current Version') writefield('Current Version')