Handle errors in execute
This commit is contained in:
parent
f04477f137
commit
43988291c6
1 changed files with 13 additions and 22 deletions
|
@ -1,4 +1,4 @@
|
||||||
from subprocess import Popen, PIPE, run, CalledProcessError
|
from subprocess import Popen, STDOUT, PIPE, run, CalledProcessError
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from sys import stdout
|
from sys import stdout
|
||||||
from os import chmod, environ
|
from os import chmod, environ
|
||||||
|
@ -87,11 +87,18 @@ class ExecutionApi:
|
||||||
if dry_run:
|
if dry_run:
|
||||||
print(command)
|
print(command)
|
||||||
else:
|
else:
|
||||||
# output = check_output(command, encoding="UTF-8", shell=shell)
|
try:
|
||||||
output = run(
|
output = run(
|
||||||
command, encoding="UTF-8", shell=shell, stdout=PIPE, check=check
|
command,
|
||||||
).stdout
|
shell=shell,
|
||||||
|
check=check,
|
||||||
|
stdout=PIPE,
|
||||||
|
stderr=STDOUT,
|
||||||
|
text=True).stdout
|
||||||
output = output.rstrip()
|
output = output.rstrip()
|
||||||
|
except CalledProcessError as exc:
|
||||||
|
print("Command failed with code: ", exc.returncode, " and message:", exc.stderr)
|
||||||
|
raise exc
|
||||||
return output
|
return output
|
||||||
|
|
||||||
# TODO: check for exception handling
|
# TODO: check for exception handling
|
||||||
|
@ -107,22 +114,6 @@ class ExecutionApi:
|
||||||
process.stdout.close()
|
process.stdout.close()
|
||||||
process.wait()
|
process.wait()
|
||||||
|
|
||||||
# TODO: move this enhancement to execute
|
|
||||||
def execute_handled(self, command: str, dry_run=False, shell=True, check=True):
|
|
||||||
if dry_run:
|
|
||||||
print(command)
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
run(
|
|
||||||
command,
|
|
||||||
shell=shell,
|
|
||||||
check=check,
|
|
||||||
stderr=PIPE,
|
|
||||||
text=True)
|
|
||||||
except CalledProcessError as exc:
|
|
||||||
print("Command failed with code: ", exc.returncode, " and message:", exc.stderr)
|
|
||||||
raise exc
|
|
||||||
|
|
||||||
|
|
||||||
class EnvironmentApi:
|
class EnvironmentApi:
|
||||||
def get(self, key):
|
def get(self, key):
|
||||||
|
|
Loading…
Reference in a new issue