|
@@ -21,6 +21,7 @@ from ...constants import * # NOQA
|
|
from ...helpers import Location
|
|
from ...helpers import Location
|
|
from ...helpers import EXIT_SUCCESS
|
|
from ...helpers import EXIT_SUCCESS
|
|
from ...helpers import bin_to_hex
|
|
from ...helpers import bin_to_hex
|
|
|
|
+from ...logger import teardown_logging
|
|
from ...manifest import Manifest
|
|
from ...manifest import Manifest
|
|
from ...remote import RemoteRepository
|
|
from ...remote import RemoteRepository
|
|
from ...repository import Repository
|
|
from ...repository import Repository
|
|
@@ -81,7 +82,10 @@ def exec_cmd(*args, archiver=None, fork=False, exe=None, input=b"", binary_outpu
|
|
except SystemExit as e:
|
|
except SystemExit as e:
|
|
output_text.flush()
|
|
output_text.flush()
|
|
return e.code, output.getvalue() if binary_output else output.getvalue().decode()
|
|
return e.code, output.getvalue() if binary_output else output.getvalue().decode()
|
|
- ret = archiver.run(args)
|
|
|
|
|
|
+ try:
|
|
|
|
+ ret = archiver.run(args)
|
|
|
|
+ finally:
|
|
|
|
+ teardown_logging() # usually done via atexit, but we do not exit here
|
|
output_text.flush()
|
|
output_text.flush()
|
|
return ret, output.getvalue() if binary_output else output.getvalue().decode()
|
|
return ret, output.getvalue() if binary_output else output.getvalue().decode()
|
|
finally:
|
|
finally:
|