-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcmd_runner.py
29 lines (26 loc) · 1.01 KB
/
cmd_runner.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import subprocess as sub
def run_command(cmd: str, timeout=None, get_both_output_and_errors=False, get_return_code=False):
result = sub.run(cmd.split(" "), timeout=timeout)
if get_both_output_and_errors:
if get_return_code:
return result.stdout, result.stderr, result.returncode
else:
return result.stdout, result.stderr
else:
if get_return_code:
if result.returncode == 0:
return result.stdout, result.returncode
else:
return result.stderr, result.returncode
else:
if result.returncode == 0:
return result.stdout
else:
return result.stderr
# Run multiple commands
def run_commands(cmds: list[str], timeout=None, get_both_output_and_errors=False, get_return_code=False):
results = []
for cmd in cmds:
result = run_command(cmd, timeout, get_both_output_and_errors, get_return_code)
results.append(result)
return results