From dfc6f6fd6e3f7e14e8ba49197373109098c40bd0 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Thu, 21 Jan 2021 20:47:44 +0000 Subject: [PATCH] Fix crash on importing texture pack with no .conf --- app/tasks/minetestcheck/tree.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/app/tasks/minetestcheck/tree.py b/app/tasks/minetestcheck/tree.py index 3dd91bae..cd7d52c6 100644 --- a/app/tasks/minetestcheck/tree.py +++ b/app/tasks/minetestcheck/tree.py @@ -80,22 +80,24 @@ class PackageTreeNode: def read_meta(self): result = {} - # .conf file + # Read .conf file meta_file_name = self.getMetaFileName() - meta_file_rel = self.relative + meta_file_name - meta_file_path = self.baseDir + "/" + meta_file_name - try: - with open(meta_file_path or "", "r") as myfile: - conf = parse_conf(myfile.read()) - for key, value in conf.items(): - result[key] = value - except SyntaxError as e: - raise MinetestCheckError("Error while reading {}: {}".format(meta_file_rel , e.msg)) - except IOError: - pass + if meta_file_name is not None: + meta_file_rel = self.relative + meta_file_name + meta_file_path = self.baseDir + "/" + meta_file_name + try: + with open(meta_file_path or "", "r") as myfile: + conf = parse_conf(myfile.read()) + for key, value in conf.items(): + result[key] = value + except SyntaxError as e: + raise MinetestCheckError("Error while reading {}: {}".format(meta_file_rel , e.msg)) + except IOError: + pass + + if "release" in result: + raise MinetestCheckError("{} should not contain 'release' key, as this is for use by ContentDB only.".format(meta_file_rel)) - if "release" in result: - raise MinetestCheckError("{} should not contain 'release' key, as this is for use by ContentDB only.".format(meta_file_rel)) # description.txt if not "description" in result: