mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 01:14:15 +02:00
[fix][arch] not stopping the upgrade process if a transaction error happens
This commit is contained in:
@@ -65,7 +65,7 @@ class SimpleProcess:
|
||||
|
||||
def __init__(self, cmd: List[str], cwd: str = '.', expected_code: int = None,
|
||||
global_interpreter: bool = USE_GLOBAL_INTERPRETER, lang: str = DEFAULT_LANG, root_password: str = None,
|
||||
extra_paths: Set[str] = None):
|
||||
extra_paths: Set[str] = None, error_phrases: Set[str] = None):
|
||||
pwdin, final_cmd = None, []
|
||||
|
||||
if root_password is not None:
|
||||
@@ -76,6 +76,7 @@ class SimpleProcess:
|
||||
|
||||
self.instance = self._new(final_cmd, cwd, global_interpreter, lang, stdin=pwdin, extra_paths=extra_paths)
|
||||
self.expected_code = expected_code
|
||||
self.error_phrases = error_phrases
|
||||
|
||||
def _new(self, cmd: List[str], cwd: str, global_interpreter: bool, lang: str, stdin = None, extra_paths: Set[str] = None) -> subprocess.Popen:
|
||||
|
||||
@@ -175,8 +176,18 @@ class ProcessHandler:
|
||||
|
||||
self._notify_watcher(line)
|
||||
|
||||
proc.instance.wait()
|
||||
output.seek(0)
|
||||
return proc.instance.returncode == proc.expected_code, output.read()
|
||||
|
||||
success = proc.instance.returncode == proc.expected_code,
|
||||
string_output = output.read()
|
||||
|
||||
if proc.error_phrases:
|
||||
for phrase in proc.error_phrases:
|
||||
if phrase in string_output:
|
||||
success = False
|
||||
break
|
||||
return success, string_output
|
||||
|
||||
|
||||
def run_cmd(cmd: str, expected_code: int = 0, ignore_return_code: bool = False, print_error: bool = True,
|
||||
|
||||
Reference in New Issue
Block a user