diff --git a/pym/update/emerge_parser.py b/pym/update/emerge_parser.py index 0d13a88..bf7b2b8 100644 --- a/pym/update/emerge_parser.py +++ b/pym/update/emerge_parser.py @@ -88,7 +88,10 @@ class CommandExecutor(): def close(self): if self.child is not None: - self.child.close() + try: + self.child.close() + except pexpect.ExceptionPexpect: + self.child.close(force=True) self.child = None def success(self): diff --git a/pym/update/update.py b/pym/update/update.py index 9090b52..eeed960 100644 --- a/pym/update/update.py +++ b/pym/update/update.py @@ -2107,7 +2107,7 @@ class Update(MethodsInterface): if branch_name == Git.Reference.Tag and tag.isdigit(): self._set_saved_tag(tag) return True - except ValueError as e: + except (ValueError, FileNotFoundError) as e: return False def _update_increment_current_level(self): diff --git a/pym/update/variables/update.py b/pym/update/variables/update.py index d8ae0d1..b50eeb1 100644 --- a/pym/update/variables/update.py +++ b/pym/update/variables/update.py @@ -179,8 +179,8 @@ class VariableClUpdateInnerRepList(Variable): def get(self): def gen(): - val = self.Get('cl_update_rep_list') - prev_host = self.Get('cl_update_rep_hosting') + val = self.Get('cl_update_rep_list') or '' + prev_host = self.Get('cl_update_rep_hosting') or '' if prev_host: for dct in val: for key, value in dct.items(): @@ -202,6 +202,7 @@ class VariableClUpdateRepHostingChoice(Variable): value = '' opt = ["--repo-update"] metavalue = "REPOSITORY URL" + check_after = ['cl_update_inner_rep_list'] def init(self): self.label = (_("Update repository"))