mirror of
https://github.com/minetest/contentdb.git
synced 2024-12-22 22:12:24 +01:00
Fix task/logic errors not being reported in post_release_check_update
This commit is contained in:
parent
966023be17
commit
6b34a91241
@ -216,35 +216,32 @@ def post_release_check_update(self, release: PackageRelease, path):
|
|||||||
|
|
||||||
# Update game support
|
# Update game support
|
||||||
if package.type == PackageType.MOD or package.type == PackageType.TXP:
|
if package.type == PackageType.MOD or package.type == PackageType.TXP:
|
||||||
try:
|
resolver = GameSupportResolver(db.session)
|
||||||
resolver = GameSupportResolver(db.session)
|
|
||||||
|
|
||||||
game_is_supported = {}
|
game_is_supported = {}
|
||||||
if "supported_games" in tree.meta:
|
if "supported_games" in tree.meta:
|
||||||
for game in get_games_from_list(db.session, tree.meta["supported_games"]):
|
for game in get_games_from_list(db.session, tree.meta["supported_games"]):
|
||||||
game_is_supported[game.id] = True
|
game_is_supported[game.id] = True
|
||||||
|
|
||||||
has_star = any(map(lambda x: x.strip() == "*", tree.meta["supported_games"]))
|
has_star = any(map(lambda x: x.strip() == "*", tree.meta["supported_games"]))
|
||||||
if has_star:
|
if has_star:
|
||||||
if package.type == PackageType.TXP or \
|
if package.type == PackageType.TXP or \
|
||||||
package.supported_games.filter(and_(
|
package.supported_games.filter(and_(
|
||||||
PackageGameSupport.confidence == 1, PackageGameSupport.supports == True)).count() > 0:
|
PackageGameSupport.confidence == 1, PackageGameSupport.supports == True)).count() > 0:
|
||||||
raise TaskError("The package depends on a game-specific mod, and so cannot support all games.")
|
raise TaskError("The package depends on a game-specific mod, and so cannot support all games.")
|
||||||
|
|
||||||
package.supports_all_games = True
|
package.supports_all_games = True
|
||||||
if "unsupported_games" in tree.meta:
|
if "unsupported_games" in tree.meta:
|
||||||
for game in get_games_from_list(db.session, tree.meta["unsupported_games"]):
|
for game in get_games_from_list(db.session, tree.meta["unsupported_games"]):
|
||||||
game_is_supported[game.id] = False
|
game_is_supported[game.id] = False
|
||||||
|
|
||||||
resolver.set_supported(package, game_is_supported, 10)
|
resolver.set_supported(package, game_is_supported, 10)
|
||||||
if package.type == PackageType.MOD:
|
if package.type == PackageType.MOD:
|
||||||
resolver.update(package)
|
resolver.update(package)
|
||||||
except LogicError as e:
|
|
||||||
raise TaskError(e.message)
|
|
||||||
|
|
||||||
return tree
|
return tree
|
||||||
|
|
||||||
except MinetestCheckError as err:
|
except (MinetestCheckError, TaskError, LogicError) as err:
|
||||||
db.session.rollback()
|
db.session.rollback()
|
||||||
|
|
||||||
task_url = url_for('tasks.check', id=self.request.id)
|
task_url = url_for('tasks.check', id=self.request.id)
|
||||||
|
Loading…
Reference in New Issue
Block a user