From 08acb5589757d7e266210755e59c96bc4c1052f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20P=C3=B6hn?= Date: Mon, 22 Jul 2019 19:49:28 +0200 Subject: [PATCH] keep yaml metadata when rewrite failed --- fdroidserver/metadata.py | 14 +++++--------- fdroidserver/rewritemeta.py | 12 ++++++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index 17a3e739..33c2f5af 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -1584,15 +1584,11 @@ def write_metadata(metadatapath, app): warn_or_exception(_('Cannot write "{path}", not an accepted format, use: {formats}') .format(path=metadatapath, formats=', '.join(accepted))) - try: - with open(metadatapath, 'w') as mf: - if ext == 'txt': - return write_txt(mf, app) - elif ext == 'yml': - return write_yaml(mf, app) - except FDroidException as e: - os.remove(metadatapath) - raise e + with open(metadatapath, 'w') as mf: + if ext == 'txt': + return write_txt(mf, app) + elif ext == 'yml': + return write_yaml(mf, app) warn_or_exception(_('Unknown metadata format: %s') % metadatapath) diff --git a/fdroidserver/rewritemeta.py b/fdroidserver/rewritemeta.py index 07fb7492..0cc5c416 100644 --- a/fdroidserver/rewritemeta.py +++ b/fdroidserver/rewritemeta.py @@ -108,10 +108,14 @@ def main(): newbuilds.append(new) app.builds = newbuilds - metadata.write_metadata(base + '.' + to_ext, app) - - if ext != to_ext: - os.remove(path) + try: + metadata.write_metadata(base + '.' + to_ext, app) + # remove old format metadata if there was a format change + # and rewriting to the new format worked + if ext != to_ext: + os.remove(path) + finally: + pass logging.debug(_("Finished"))