luarocks-packages-updater: handle errors better
This commit is contained in:
parent
8af52ff6ba
commit
213f4d95bf
@ -127,7 +127,7 @@ class LuaEditor(pluginupdate.Editor):
|
|||||||
config: FetchConfig,
|
config: FetchConfig,
|
||||||
# TODO: implement support for adding/updating individual plugins
|
# TODO: implement support for adding/updating individual plugins
|
||||||
to_update: list[str] | None,
|
to_update: list[str] | None,
|
||||||
):
|
):
|
||||||
if to_update is not None:
|
if to_update is not None:
|
||||||
raise NotImplementedError("For now, lua updater doesn't support updating individual packages.")
|
raise NotImplementedError("For now, lua updater doesn't support updating individual packages.")
|
||||||
_prefetch = generate_pkg_nix
|
_prefetch = generate_pkg_nix
|
||||||
@ -142,7 +142,15 @@ class LuaEditor(pluginupdate.Editor):
|
|||||||
finally:
|
finally:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.generate_nix(results, output_file)
|
successful_results = [(plug, nix_expr) for plug, nix_expr, error in results if nix_expr is not None]
|
||||||
|
errors = [(plug, error) for plug, nix_expr, error in results if error is not None]
|
||||||
|
|
||||||
|
self.generate_nix(successful_results, output_file)
|
||||||
|
|
||||||
|
if errors:
|
||||||
|
log.error("The following plugins failed to update:")
|
||||||
|
for plug, error in errors:
|
||||||
|
log.error("%s: %s", plug.name, error)
|
||||||
|
|
||||||
redirects = {}
|
redirects = {}
|
||||||
return redirects
|
return redirects
|
||||||
@ -171,39 +179,43 @@ def generate_pkg_nix(plug: LuaPlugin):
|
|||||||
"""
|
"""
|
||||||
log.debug("Generating nix expression for %s", plug.name)
|
log.debug("Generating nix expression for %s", plug.name)
|
||||||
|
|
||||||
cmd = ["luarocks", "nix"]
|
try:
|
||||||
|
cmd = ["luarocks", "nix"]
|
||||||
|
|
||||||
if plug.maintainers:
|
if plug.maintainers:
|
||||||
cmd.append(f"--maintainers={plug.maintainers}")
|
cmd.append(f"--maintainers={plug.maintainers}")
|
||||||
|
|
||||||
if plug.rockspec != "":
|
if plug.rockspec != "":
|
||||||
if plug.ref or plug.version:
|
if plug.ref or plug.version:
|
||||||
msg = "'version' and 'ref' will be ignored as the rockspec is hardcoded for package %s" % plug.name
|
msg = "'version' and 'ref' will be ignored as the rockspec is hardcoded for package %s" % plug.name
|
||||||
log.warning(msg)
|
log.warning(msg)
|
||||||
|
|
||||||
log.debug("Updating from rockspec %s", plug.rockspec)
|
log.debug("Updating from rockspec %s", plug.rockspec)
|
||||||
cmd.append(plug.rockspec)
|
cmd.append(plug.rockspec)
|
||||||
|
|
||||||
# update the plugin from luarocks
|
# update the plugin from luarocks
|
||||||
else:
|
else:
|
||||||
cmd.append(plug.name)
|
cmd.append(plug.name)
|
||||||
if plug.version and plug.version != "src":
|
if plug.version and plug.version != "src":
|
||||||
cmd.append(plug.version)
|
cmd.append(plug.version)
|
||||||
|
|
||||||
if plug.server != "src" and plug.server:
|
if plug.server != "src" and plug.server:
|
||||||
cmd.append(f"--only-server={plug.server}")
|
cmd.append(f"--only-server={plug.server}")
|
||||||
|
|
||||||
if plug.luaversion:
|
if plug.luaversion:
|
||||||
cmd.append(f"--lua-version={plug.luaversion}")
|
cmd.append(f"--lua-version={plug.luaversion}")
|
||||||
luaver = plug.luaversion.replace(".", "")
|
luaver = plug.luaversion.replace(".", "")
|
||||||
if luaver := os.getenv(f"LUA_{luaver}"):
|
if luaver := os.getenv(f"LUA_{luaver}"):
|
||||||
cmd.append(f"--lua-dir={luaver}")
|
cmd.append(f"--lua-dir={luaver}")
|
||||||
|
|
||||||
log.debug("running %s", " ".join(cmd))
|
log.debug("running %s", " ".join(cmd))
|
||||||
|
|
||||||
output = subprocess.check_output(cmd, text=True)
|
output = subprocess.check_output(cmd, text=True)
|
||||||
output = "callPackage(" + output.strip() + ") {};\n\n"
|
output = "callPackage(" + output.strip() + ") {};\n\n"
|
||||||
return (plug, output)
|
return (plug, output, None)
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
log.error("Failed to generate nix expression for %s: %s", plug.name, e)
|
||||||
|
return (plug, None, str(e))
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user