diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py index 3f305749..37f5f1c8 100644 --- a/app/tasks/importtasks.py +++ b/app/tasks/importtasks.py @@ -124,6 +124,9 @@ def post_release_check_update(self, release: PackageRelease, path): provides = tree.get_mod_names() package = release.package + if not package.approved: + tree.check_for_legacy_files() + old_provided_names = set([x.name for x in package.provides]) package.provides.clear() diff --git a/app/tasks/minetestcheck/tree.py b/app/tasks/minetestcheck/tree.py index 2fea0d18..220d5612 100644 --- a/app/tasks/minetestcheck/tree.py +++ b/app/tasks/minetestcheck/tree.py @@ -90,6 +90,8 @@ class PackageTreeNode: children: list type: ContentType strict: bool + has_legacy_depends: bool + has_legacy_description: bool def __init__(self, base_dir: str, relative: str, author: Optional[str] = None, @@ -103,6 +105,8 @@ class PackageTreeNode: self.meta = {} self.children = [] self.strict = strict + self.has_legacy_depends = False + self.has_legacy_description = False # Detect type self.type = detect_type(base_dir) @@ -184,6 +188,11 @@ class PackageTreeNode: except IOError: pass + if os.path.isfile(self.baseDir + "/depends.txt"): + self.has_legacy_depends = True + if os.path.isfile(self.baseDir + "/description.txt"): + self.has_legacy_description = True + # Read dependencies if "depends" in result or "optional_depends" in result: result["depends"] = get_csv_line(result.get("depends")) @@ -304,6 +313,16 @@ class PackageTreeNode: def get(self, key: str, default=None): return self.meta.get(key, default) + def check_for_legacy_files(self): + if self.has_legacy_depends: + raise MinetestCheckError("Found depends.txt at {}. Delete this file and use depends in mod.conf instead" \ + .format(self.relative)) + if self.has_legacy_description: + raise MinetestCheckError("Found description.txt at {}. Delete this file and use description in {} instead" \ + .format(self.relative, self.get_meta_file_name())) + for child in self.children: + child.check_for_legacy_files() + def validate(self): for child in self.children: child.validate()