aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2020-08-18 00:16:03 +0100
committerrubenwardy <rw@rubenwardy.com>2020-08-18 00:16:03 +0100
commit3914659718b579a6978fda9930198d1fa0e3cf59 (patch)
tree1ce09cf2dc23c285cff8c74743c2d4eb2ac06967
parent8fd229b73909f7719137586db482e8ca623e1cde (diff)
downloadcheatdb-3914659718b579a6978fda9930198d1fa0e3cf59.tar.xz
Fix dependencies still being added if in provides
Fixes #226
-rw-r--r--app/tasks/importtasks.py21
1 files changed, 16 insertions, 5 deletions
diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py
index ff085cd..26e94f6 100644
--- a/app/tasks/importtasks.py
+++ b/app/tasks/importtasks.py
@@ -167,16 +167,27 @@ def updateMetaFromRelease(self, id, path):
package.provides.clear()
package.provides.extend(provides)
- for dep in package.dependencies:
- if dep.meta_package:
- db.session.delete(dep)
+ # Delete all meta package dependencies
+ package.dependencies.filter(Dependency.meta_package != None).delete()
- for meta in getMetaPackages(tree.fold("meta", "depends")):
+ # Get raw dependencies
+ depends = tree.fold("meta", "depends")
+ optional_depends = tree.fold("meta", "optional_depends")
+
+ # Filter out provides
+ for mod in provides:
+ depends.discard(mod)
+ optional_depends.discard(mod)
+
+ # Add dependencies
+
+ for meta in getMetaPackages(depends):
db.session.add(Dependency(package, meta=meta, optional=False))
- for meta in getMetaPackages(tree.fold("meta", "optional_depends")):
+ for meta in getMetaPackages(optional_depends):
db.session.add(Dependency(package, meta=meta, optional=True))
+
db.session.commit()
except MinetestCheckError as err: