Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. use std::process::{Command, Stdio};
  2.  
  3. fn run_fzf<O: Into<Stdio>, I: Into<Stdio>>(
  4. input: &str,
  5. stdin: Option<I>,
  6. stdout: Option<O>
  7. ) -> String {
  8. let child = Command::new("fzf")
  9. .args(&["-f", input, "--no-sort", "--inline-info"])
  10. .stdout(stdout.map(Into::into).unwrap_or(Stdio::piped()))
  11. .stdin(stdin.map(Into::into).unwrap_or(Stdio::inherit()))
  12. .spawn()
  13. .expect("Failed to run fzf command");
  14.  
  15. let output = child.wait_with_output().expect("Failed to wait fzf command");
  16. String::from_utf8_lossy(&output.stdout).to_string()
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement