Update ranger plugin
This commit is contained in:
parent
f4cf811155
commit
aab37dfab9
|
|
@ -1,3 +1,4 @@
|
||||||
|
import os.path
|
||||||
import ranger.api
|
import ranger.api
|
||||||
import ranger.core.fm
|
import ranger.core.fm
|
||||||
import ranger.ext.signals
|
import ranger.ext.signals
|
||||||
|
|
@ -22,15 +23,24 @@ ranger.api.hook_init = hook_init
|
||||||
class z(ranger.api.commands.Command):
|
class z(ranger.api.commands.Command):
|
||||||
def execute(self):
|
def execute(self):
|
||||||
try:
|
try:
|
||||||
output = subprocess.check_output(["zoxide", "query"] + self.args[1:])
|
zoxide = subprocess.Popen(
|
||||||
output = output.decode("utf-8")
|
["zoxide", "query"] + self.args[1:],
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE,
|
||||||
|
)
|
||||||
|
stdout, stderr = zoxide.communicate()
|
||||||
|
|
||||||
|
if zoxide.returncode == 0:
|
||||||
|
output = stdout.decode("utf-8").strip()
|
||||||
|
if output:
|
||||||
|
self.fm.notify(output)
|
||||||
|
if os.path.isdir(output):
|
||||||
|
self.fm.cd(output)
|
||||||
|
else:
|
||||||
|
self.fm.notify("zoxide: unexpected exit", bad=True)
|
||||||
|
else:
|
||||||
|
output = stderr.decode("utf-8").strip() or "zoxide: unknown error"
|
||||||
|
self.fm.notify(output, bad=True)
|
||||||
|
|
||||||
directory = output.strip()
|
|
||||||
self.fm.cd(directory)
|
|
||||||
self.fm.notify(directory)
|
|
||||||
except subprocess.CalledProcessError as e:
|
|
||||||
if e.returncode == 1:
|
|
||||||
pass
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.fm.notify(e, bad=True)
|
self.fm.notify(e, bad=True)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue