From 6a8591807ea24bc48f28612c3472811e6ae84876 Mon Sep 17 00:00:00 2001 From: Fabian Winter <5821180+fdw@users.noreply.github.com> Date: Tue, 29 Jun 2021 09:37:25 +0200 Subject: [PATCH] Clean up error handling --- __init__.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/__init__.py b/__init__.py index 8c659ff..ebbed36 100644 --- a/__init__.py +++ b/__init__.py @@ -33,22 +33,20 @@ class z(ranger.api.commands.Command): def query(self, args): try: - p = self.fm.execute_command("zoxide query {}".format(" ".join(self.args[1:])), - stdout=PIPE - ) - stdout, stderr = p.communicate() + zoxide = self.fm.execute_command(f"zoxide query {' '.join(self.args[1:])}", + stdout=PIPE + ) + stdout, stderr = zoxide.communicate() - if not stdout: - return None - - if p.returncode == 0: + if zoxide.returncode == 0: output = stdout.decode("utf-8").strip() - if output: - return output.splitlines() - else: - self.fm.notify("zoxide exited with status {}".format(p.returncode), bad=True) + return output.splitlines() + elif zoxide.returncode == 1: # nothing found + return None + elif zoxide.returncode == 130: # user cancelled + return None else: - output = stderr.decode("utf-8").strip() or "zoxide: unexpected error" + output = stderr.decode("utf-8").strip() or f"zoxide: unexpected error (exit code {zoxide.returncode})" self.fm.notify(output, bad=True) except Exception as e: self.fm.notify(e, bad=True)