cli (base): fix exit code transmission when SystemExit is catched.

This commit is contained in:
Goffi 2024-03-05 17:31:56 +01:00
commit 8db12deaff

View file

@ -734,10 +734,10 @@ class LiberviaCli:
self.loop = LiberviaCLILoop()
try:
self.loop.run(self, args, namespace)
except SystemExit:
except SystemExit as e:
# The loop is stopped, but we execute it one more time to call `a_quit` which
# will call any cleaning method including async ones.
asyncio.get_event_loop().run_until_complete(self.a_quit())
asyncio.get_event_loop().run_until_complete(self.a_quit(e.code))
@classmethod
def run(cls):
@ -804,7 +804,7 @@ class LiberviaCli:
if raise_exc:
raise QuitException
async def a_quit(self, exit_code=0, raise_exc=True):
async def a_quit(self, exit_code: int=0, raise_exc=True):
"""Execute async quit callback before actually quitting
This method should be prefered to ``quit``, as it executes async quit callbacks