fix: only raise exception on command failure with stderr output
- Change run() function to check returncode before raising exception - Use re.search() instead of re.match() for ignore pattern matching - Fix false positive errors from waydroid informational stderr messages Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
+5
-5
@@ -33,16 +33,16 @@ def get_data_dir():
|
||||
# execute on host
|
||||
def run(args: list, env: Optional[str] = None, ignore: Optional[str] = None):
|
||||
result = subprocess.run(
|
||||
args=args,
|
||||
env=env,
|
||||
stdout=subprocess.PIPE,
|
||||
args=args,
|
||||
env=env,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE
|
||||
)
|
||||
|
||||
# print(result.stdout.decode())
|
||||
if result.stderr:
|
||||
if result.returncode != 0 and result.stderr:
|
||||
error = result.stderr.decode("utf-8")
|
||||
if ignore and re.match(ignore, error):
|
||||
if ignore and re.search(ignore, error):
|
||||
return result
|
||||
Logger.error(error)
|
||||
raise subprocess.CalledProcessError(
|
||||
|
||||
Reference in New Issue
Block a user