From 732de91aa7f7a0dc3e2f40478aa4a97781c56e63 Mon Sep 17 00:00:00 2001 From: Izzy Date: Sat, 8 Jul 2017 14:07:11 +0200 Subject: [PATCH 1/3] make --create-metadata use yaml.dump instead of ruamel (solves #345) --- fdroidserver/update.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 7754ae4b..27115e85 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -1780,13 +1780,8 @@ def main(): app['IssueTracker'] = '' app['SourceCode'] = '' app['CurrentVersionCode'] = 2147483647 # Java's Integer.MAX_VALUE - try: - import ruamel.yaml - assert ruamel.yaml # silence pyflakes - metadata.write_yaml(f, metadata.App(app)) - except ImportError: - import yaml - yaml.dump(app, f, default_flow_style=False) + import yaml + yaml.dump(app, f, default_flow_style=False) logging.info("Generated skeleton metadata for " + apk['packageName']) newmetadata = True else: From 4d375a585dd9898c6f6ace21f962da03cc1365ce Mon Sep 17 00:00:00 2001 From: Izzy Date: Sat, 8 Jul 2017 14:21:49 +0200 Subject: [PATCH 2/3] enable user to have presets for metadata by using a template.yml (see #345) --- fdroidserver/update.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 27115e85..37176fb8 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -1760,13 +1760,18 @@ def main(): for apk in apks: if apk['packageName'] not in apps: if options.create_metadata: + import yaml with open(os.path.join('metadata', apk['packageName'] + '.yml'), 'w') as f: # this should use metadata.App() and # metadata.write_yaml(), but since ruamel.yaml # 0.13 is not widely distributed yet, and it's # special tricks are not really needed here, this # uses the plain YAML lib - app = dict() + if os.path.exists('template.yml'): + with open('template.yml') as fp: + app = yaml.load(fp) + else: + app = dict() if 'name' in apk and apk['name'] != '': app['Name'] = apk['name'] else: @@ -1780,7 +1785,6 @@ def main(): app['IssueTracker'] = '' app['SourceCode'] = '' app['CurrentVersionCode'] = 2147483647 # Java's Integer.MAX_VALUE - import yaml yaml.dump(app, f, default_flow_style=False) logging.info("Generated skeleton metadata for " + apk['packageName']) newmetadata = True From dd6949082123a0d3c364910d1cdfc2707f5165d8 Mon Sep 17 00:00:00 2001 From: Izzy Date: Sat, 8 Jul 2017 14:41:19 +0200 Subject: [PATCH 3/3] --create-metadata: only set default empty values if not using template.py --- fdroidserver/update.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 37176fb8..f463b55d 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -1772,19 +1772,19 @@ def main(): app = yaml.load(fp) else: app = dict() + app['Categories'] = [os.path.basename(os.getcwd())] + # include some blanks as part of the template + app['AuthorName'] = '' + app['Summary'] = '' + app['WebSite'] = '' + app['IssueTracker'] = '' + app['SourceCode'] = '' + app['CurrentVersionCode'] = 2147483647 # Java's Integer.MAX_VALUE if 'name' in apk and apk['name'] != '': app['Name'] = apk['name'] else: logging.warning(apk['packageName'] + ' does not have a name! Using package name instead.') app['Name'] = apk['packageName'] - app['Categories'] = [os.path.basename(os.getcwd())] - # include some blanks as part of the template - app['AuthorName'] = '' - app['Summary'] = '' - app['WebSite'] = '' - app['IssueTracker'] = '' - app['SourceCode'] = '' - app['CurrentVersionCode'] = 2147483647 # Java's Integer.MAX_VALUE yaml.dump(app, f, default_flow_style=False) logging.info("Generated skeleton metadata for " + apk['packageName']) newmetadata = True