mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-10 17:30:11 +01:00
Add "Auto Name" field, fill it in checkupdates
This commit is contained in:
parent
445bc8eb12
commit
58f555737f
@ -268,6 +268,24 @@ def main():
|
|||||||
writeit = True
|
writeit = True
|
||||||
logmsg = "Update current version of " + app['id'] + " to " + version
|
logmsg = "Update current version of " + app['id'] + " to " + version
|
||||||
|
|
||||||
|
if app['Repo Type'] == 'srclib':
|
||||||
|
app_dir = os.path.join('build', 'srclib', app['Repo'])
|
||||||
|
else:
|
||||||
|
app_dir = os.path.join('build/', app['id'])
|
||||||
|
|
||||||
|
vcs = common.getvcs(app["Repo Type"], app["Repo"], app_dir, sdk_path)
|
||||||
|
vcs.gotorevision(None)
|
||||||
|
|
||||||
|
if len(app['builds']) > 0:
|
||||||
|
if 'subdir' in app['builds'][-1]:
|
||||||
|
app_dir = os.path.join(app_dir, app['builds'][-1]['subdir'])
|
||||||
|
|
||||||
|
new_name = common.fetch_real_name(app_dir)
|
||||||
|
if new_name != app['Auto Name']:
|
||||||
|
app['Auto Name'] = new_name
|
||||||
|
writeit = True
|
||||||
|
logmsg = "Update auto name of " + app['id'] + " to " + new_name
|
||||||
|
|
||||||
if options.auto:
|
if options.auto:
|
||||||
mode = app['Auto Update Mode']
|
mode = app['Auto Update Mode']
|
||||||
if mode == 'None':
|
if mode == 'None':
|
||||||
|
@ -466,6 +466,7 @@ def parse_metadata(metafile, **kw):
|
|||||||
|
|
||||||
# Defaults for fields that come from metadata...
|
# Defaults for fields that come from metadata...
|
||||||
thisinfo['Name'] = None
|
thisinfo['Name'] = None
|
||||||
|
thisinfo['Auto Name'] = ''
|
||||||
thisinfo['Category'] = 'None'
|
thisinfo['Category'] = 'None'
|
||||||
thisinfo['Description'] = []
|
thisinfo['Description'] = []
|
||||||
thisinfo['Summary'] = ''
|
thisinfo['Summary'] = ''
|
||||||
@ -621,6 +622,7 @@ def write_metadata(dest, app):
|
|||||||
mf.write('\n')
|
mf.write('\n')
|
||||||
if app['Name']:
|
if app['Name']:
|
||||||
writefield('Name')
|
writefield('Name')
|
||||||
|
writefield('Auto Name')
|
||||||
writefield('Summary')
|
writefield('Summary')
|
||||||
writefield('Description', '')
|
writefield('Description', '')
|
||||||
for line in app['Description']:
|
for line in app['Description']:
|
||||||
@ -860,6 +862,32 @@ def description_html(lines,linkres):
|
|||||||
return ps.text_html
|
return ps.text_html
|
||||||
|
|
||||||
|
|
||||||
|
# Retrieve the package name
|
||||||
|
def fetch_real_name(app_dir):
|
||||||
|
name_search = re.compile(r'.*android:label="([^"]+)".*').search
|
||||||
|
name = None
|
||||||
|
for line in file(os.path.join(app_dir, 'AndroidManifest.xml')):
|
||||||
|
if name is not None:
|
||||||
|
break
|
||||||
|
matches = name_search(line)
|
||||||
|
if matches:
|
||||||
|
name = matches.group(1)
|
||||||
|
|
||||||
|
if name.startswith('@string/'):
|
||||||
|
id = name[8:]
|
||||||
|
name2 = None
|
||||||
|
string_search= re.compile(r'.*"'+id+'">([^<]+?)<.*').search
|
||||||
|
for xmlfile in glob.glob(os.path.join(
|
||||||
|
app_dir, 'res', 'values', 'strings*.xml')):
|
||||||
|
for line in file(xmlfile):
|
||||||
|
if name2 is not None:
|
||||||
|
break
|
||||||
|
matches = string_search(line)
|
||||||
|
if matches:
|
||||||
|
name2 = matches.group(1)
|
||||||
|
return name2
|
||||||
|
|
||||||
|
return name
|
||||||
|
|
||||||
# Extract some information from the AndroidManifest.xml at the given path.
|
# Extract some information from the AndroidManifest.xml at the given path.
|
||||||
# Returns (version, vercode, package), any or all of which might be None.
|
# Returns (version, vercode, package), any or all of which might be None.
|
||||||
|
Loading…
Reference in New Issue
Block a user