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

More import tool improvements

This commit is contained in:
Ciaran Gultnieks 2012-02-11 15:27:09 +00:00
parent d3ee954ab2
commit 8f3f7433ee
3 changed files with 39 additions and 5 deletions

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# checkmarket2.py - part of the FDroid server tools # checkupdates.py - part of the FDroid server tools
# Copyright (C) 2010-12, Ciaran Gultnieks, ciaran@ciarang.com # Copyright (C) 2010-12, Ciaran Gultnieks, ciaran@ciarang.com
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify

View File

@ -517,7 +517,16 @@ def write_metadata(dest, app):
for build in app['builds']: for build in app['builds']:
writecomments('build:' + build['version']) writecomments('build:' + build['version'])
mf.write('Build Version:') mf.write('Build Version:')
if build.has_key('origlines'):
# Keeping the original formatting if we loaded it from a file...
mf.write('\\\n'.join(build['origlines']) + '\n') mf.write('\\\n'.join(build['origlines']) + '\n')
else:
mf.write(build['version'] + ',' + build['vercode'] + ',' +
build['commit'])
for key,value in build.iteritems():
if key not in ['version', 'vercode', 'commit']:
mf.write(',' + key + '=' + value)
mf.write('\n')
if len(app['builds']) > 0: if len(app['builds']) > 0:
mf.write('\n') mf.write('\n')
writefield('Update Check Mode') writefield('Update Check Mode')

View File

@ -73,6 +73,7 @@ elif url.startswith('http://code.google.com/p/'):
print 'Unable to find source at ' + sourcecode + ' - return code ' + str(req.getcode()) print 'Unable to find source at ' + sourcecode + ' - return code ' + str(req.getcode())
sys.exit(1) sys.exit(1)
page = req.read() page = req.read()
repotype = None
index = page.find('hg clone') index = page.find('hg clone')
if index != -1: if index != -1:
repotype = 'hg' repotype = 'hg'
@ -82,7 +83,17 @@ elif url.startswith('http://code.google.com/p/'):
print "Error while getting repo address" print "Error while getting repo address"
sys.exit(1) sys.exit(1)
repo = repo[:index] repo = repo[:index]
else: if not repotype:
index=page.find('git clone')
if index != -1:
repotype = 'git'
repo = page[index + 10:]
index = repo.find('<')
if index == -1:
print "Error while getting repo address"
sys.exit(1)
repo = repo[:index]
if not repotype:
print "Unable to determine vcs type" print "Unable to determine vcs type"
sys.exit(1) sys.exit(1)
@ -110,7 +121,7 @@ if not os.path.exists(manifest):
# Extract some information... # Extract some information...
vcsearch = re.compile(r'.*android:versionCode="([^"]+)".*').search vcsearch = re.compile(r'.*android:versionCode="([^"]+)".*').search
vnsearch = re.compile(r'.*android:versionName="([^"]+)".').search vnsearch = re.compile(r'.*android:versionName="([^"]+)".*').search
psearch = re.compile(r'.*package="([^"]+)".*').search psearch = re.compile(r'.*package="([^"]+)".*').search
version = None version = None
vercode = None vercode = None
@ -141,7 +152,7 @@ if not vercode:
# Make sure it's actually new... # Make sure it's actually new...
for app in apps: for app in apps:
if app['id'] == package: if app['id'] == package:
print "Package ' + package + ' already exists" print "Package " + package + " already exists"
sys.exit(1) sys.exit(1)
# Construct the metadata... # Construct the metadata...
@ -151,6 +162,20 @@ app['Web Site'] = url
app['Source Code'] = sourcecode app['Source Code'] = sourcecode
app['Repo Type'] = repotype app['Repo Type'] = repotype
app['Repo'] = repo app['Repo'] = repo
# Create a build line...
build = {}
build['version'] = version
build['vercode'] = vercode
build['commit'] = '?'
if options.subdir:
build['subdir'] = options.subdir
if os.path.exists(os.path.join(root_dir, 'jni')):
build['buildjni'] = 'yes'
app['builds'].append(build)
app['comments'].append(('build:' + version,
"#Generated by import.py - check this is the right version, and find the right commit!"))
metafile = os.path.join('metadata', package + '.txt') metafile = os.path.join('metadata', package + '.txt')
common.write_metadata(metafile, app) common.write_metadata(metafile, app)
print "Wrote " + metafile print "Wrote " + metafile