aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main.rs36
1 files changed, 31 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs
index 4a18223..ebe1683 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -6,8 +6,9 @@ use clipboard::ClipboardContext;
use rustty::{Terminal, Event, Cell, Color, Attr};
use rustty::ui::Painter;
+use std::env;
use std::io::{self, BufRead};
-use std::process;
+use std::process::{self, Command};
use std::time::Duration;
struct Point {
@@ -38,11 +39,24 @@ fn move_selection(term: &mut Terminal, selection: &mut Point, style: Cell, amoun
}
fn main() {
+ let args: Vec<String> = env::args().collect();
+
+ let input = if args.len() > 1 {
+ &args[1]
+ } else {
+ "-"
+ };
+
+ let file = Command::new("pass")
+ .arg("show")
+ .arg(input)
+ .output()
+ .expect("Error executing `pass`")
+ .stdout;
+
+ let output = String::from_utf8_lossy(&file);
let mut options = Vec::new();
- let stdin = io::stdin();
- for line in stdin.lock().lines() {
- let line = line.expect("Error reading from STDIN");
-
+ for line in output.lines() {
if line.starts_with("e: ") ||
line.starts_with("u: ") ||
line.starts_with("p: ") {
@@ -50,6 +64,18 @@ fn main() {
}
}
+ // let mut options = Vec::new();
+ // let stdin = io::stdin();
+ // for line in stdin.lock().lines() {
+ // let line = line.expect("Error reading from STDIN");
+ //
+ // if line.starts_with("e: ") ||
+ // line.starts_with("u: ") ||
+ // line.starts_with("p: ") {
+ // options.push(line);
+ // }
+ // }
+
if options.is_empty() {
process::exit(1);
}