Added method for retrieving pass data.
This commit is contained in:
22
gtkpass.py
22
gtkpass.py
@@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
|
import subprocess
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
@@ -79,6 +80,7 @@ class GTKPass(Gtk.Window):
|
|||||||
column.add_attribute(icon_renderer, "icon_name", 3)
|
column.add_attribute(icon_renderer, "icon_name", 3)
|
||||||
self.treeview.append_column(column)
|
self.treeview.append_column(column)
|
||||||
selection = self.treeview.get_selection()
|
selection = self.treeview.get_selection()
|
||||||
|
selection.connect('changed', self.on_selected)
|
||||||
|
|
||||||
# scrollview to hold treeview
|
# scrollview to hold treeview
|
||||||
tv_sw = Gtk.ScrolledWindow()
|
tv_sw = Gtk.ScrolledWindow()
|
||||||
@@ -223,6 +225,18 @@ class GTKPass(Gtk.Window):
|
|||||||
self.make_subtree_visible(model, iter)
|
self.make_subtree_visible(model, iter)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def on_selected(self, selection):
|
||||||
|
model, treeiter = selection.get_selected()
|
||||||
|
|
||||||
|
if not (treeiter and model[treeiter] and model[treeiter][5]):
|
||||||
|
return
|
||||||
|
|
||||||
|
success, data = self.passs.get_pass(model[treeiter][4])
|
||||||
|
if not success:
|
||||||
|
self.label.set_label(f'<span foreground="red" size="x-large">'
|
||||||
|
f'There is an error:\n{data}</span>')
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
class Leaf:
|
class Leaf:
|
||||||
"""A simple class to hold Leaf data"""
|
"""A simple class to hold Leaf data"""
|
||||||
@@ -278,6 +292,14 @@ class PassStore:
|
|||||||
def gather_pass_tree(self):
|
def gather_pass_tree(self):
|
||||||
self._gather_pass_tree(self.data, self.store_path, '')
|
self._gather_pass_tree(self.data, self.store_path, '')
|
||||||
|
|
||||||
|
def get_pass(self, path):
|
||||||
|
proc = subprocess.run(['pass', path], capture_output=True,
|
||||||
|
encoding='utf-8')
|
||||||
|
if proc.returncode == 0:
|
||||||
|
return True, proc.stdout
|
||||||
|
else:
|
||||||
|
return False, proc.stderr
|
||||||
|
|
||||||
def _gather_pass_tree(self, model, root, dirname):
|
def _gather_pass_tree(self, model, root, dirname):
|
||||||
fullpath = os.path.join(root, dirname)
|
fullpath = os.path.join(root, dirname)
|
||||||
ps_path = fullpath[len(self.store_path)+1:]
|
ps_path = fullpath[len(self.store_path)+1:]
|
||||||
|
|||||||
Reference in New Issue
Block a user