summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <github@bigly.dog>2024-03-21 12:07:49 -0700
committerroot <github@bigly.dog>2024-03-21 12:07:49 -0700
commitb6711c8f125dcbdd10fcc7c4217f64fc7dac0c6d (patch)
tree6d047cca150299cd51eadb567d557a359f355507
parent8b062fa0c5980f10a5561458373643f70cc83d89 (diff)
cleanup
-rw-r--r--src/fzf.rs102
-rw-r--r--src/output.rs10
-rw-r--r--src/subprocess.rs4
-rw-r--r--src/types.rs2
4 files changed, 8 insertions, 110 deletions
diff --git a/src/fzf.rs b/src/fzf.rs
index d96b4d9..8808302 100644
--- a/src/fzf.rs
+++ b/src/fzf.rs
@@ -1,28 +1,18 @@
use {
super::{
argparse::Mode,
- subprocess::{stream_into, SubprocCommand},
+ subprocess::{stream_subproc, SubprocCommand},
types::Fail,
},
- futures::{
- future::ready,
- stream::{once, select, try_unfold, Stream, StreamExt},
- },
+ futures::stream::Stream,
std::{
collections::HashMap,
env::{self, current_exe},
ffi::OsString,
path::PathBuf,
process::Stdio,
- sync::Arc,
- },
- tokio::{
- io::{AsyncWriteExt, BufWriter, ErrorKind},
- process::Command,
- select,
- sync::mpsc::Receiver,
- task::{spawn, JoinHandle},
},
+ tokio::{io::ErrorKind, process::Command},
which::which,
};
@@ -54,90 +44,6 @@ async fn reset_term() -> Result<(), Fail> {
Err(Fail::IO(PathBuf::from("reset"), ErrorKind::NotFound))
}
-fn run_fzf<'a>(
- cmd: SubprocCommand,
- stream: impl Stream<Item = Result<OsString, Fail>> + Unpin + 'a,
-) -> Box<dyn Stream<Item = Result<(), Fail>> + 'a> {
- let subprocess = Command::new(&cmd.prog)
- .kill_on_drop(true)
- .args(&cmd.args)
- .envs(&cmd.env)
- .stdin(Stdio::piped())
- .spawn();
-
- match subprocess {
- Err(e) => {
- let err = Fail::IO(cmd.prog, e.kind());
- Box::new(once(ready(Err(err))))
- }
- Ok(mut child) => {
- todo!()
- }
- }
-
- //match subprocess {
- // Err(err) => {
- // abort.send(Fail::IO(cmd.prog, err.kind())).await;
- // }
- // Ok(mut child) => {
- // let mut stdin = child.stdin.take().map(BufWriter::new).expect("nil stdin");
-
- // let abort_1 = abort.clone();
- // let p1 = cmd.prog.clone();
- // let handle_in = spawn(async move {
- // stream_into(&abort_1, p1.clone(), &mut stdin, stream).await;
- // if let Err(err) = stdin.shutdown().await {
- // abort_1.send(Fail::IO(p1, err.kind())).await;
- // }
- // });
-
- // let abort_2 = abort.clone();
- // let p2 = cmd.prog.clone();
- // let handle_child = spawn(async move {
- // select! {
- // () = abort_2.notified() => {
- // match child.kill().await {
- // Err(err) => {
- // abort_2.send(Fail::IO(p2, err.kind())).await;
- // },
- // _ => {
- // if let Err(err) = reset_term().await {
- // abort_2.send(err).await;
- // }
- // }
- // }
- // },
- // rhs = child.wait() => {
- // match rhs {
- // Ok(status) => {
- // match status.code() {
- // Some(0 | 1) | None => (),
- // Some(130) => {
- // abort_2.send(Fail::Interrupt).await;
- // }
- // Some(c) => {
- // abort_2.send(Fail::BadExit(p2, c)).await;
- // if let Err(err) = reset_term().await {
- // abort_2.send(err).await;
- // }
- // }
- // }
- // }
- // Err(err) => {
- // abort_2.send(Fail::IO(p2, err.kind())).await;
- // }
- // }
- // }
- // }
- // });
-
- // if let Err(err) = try_join(handle_child, handle_in).await {
- // abort.send(err.into()).await;
- // }
- // }
- //}
-}
-
pub fn stream_fzf_proc<'a>(
bin: PathBuf,
args: Vec<String>,
@@ -177,5 +83,5 @@ pub fn stream_fzf_proc<'a>(
args: arguments,
env: fzf_env,
};
- run_fzf(cmd, stream)
+ stream_subproc(cmd, stream)
}
diff --git a/src/output.rs b/src/output.rs
index 55735d2..b27975f 100644
--- a/src/output.rs
+++ b/src/output.rs
@@ -7,7 +7,7 @@ use {
},
futures::stream::{Stream, StreamExt, TryStreamExt},
std::{ffi::OsString, marker::Unpin, path::PathBuf, sync::Arc},
- tokio::io::{self, AsyncWrite, AsyncWriteExt, BufWriter},
+ tokio::io,
};
pub fn stream_sink<'a>(
@@ -15,14 +15,10 @@ pub fn stream_sink<'a>(
stream: impl Stream<Item = Result<OsString, Fail>> + Unpin + 'a,
) -> Box<dyn Stream<Item = Result<(), Fail>> + 'a> {
match (&opts.action, &opts.printer) {
- (Action::FzfPreview(fzf_p, fzf_a), _) => {
- //stream_fzf_proc( fzf_p, fzf_a, stream)
-
- todo!()
- }
+ (Action::FzfPreview(fzf_p, fzf_a), _) => stream_fzf_proc(fzf_p.clone(), fzf_a.clone(), stream),
(_, Printer::Pager(cmd)) => stream_subproc(cmd.clone(), stream),
(_, Printer::Stdout) => {
- let stdout = BufWriter::new(io::stdout());
+ let stdout = io::stdout();
Box::new(stream_into(PathBuf::from("/dev/stdout"), stdout, stream))
}
}
diff --git a/src/subprocess.rs b/src/subprocess.rs
index 5d1fa9e..cea72ce 100644
--- a/src/subprocess.rs
+++ b/src/subprocess.rs
@@ -4,9 +4,7 @@ use {
future::ready,
stream::{once, select, try_unfold, Stream, StreamExt},
},
- std::{
- collections::HashMap, ffi::OsString, marker::Unpin, path::PathBuf, process::Stdio, sync::Arc,
- },
+ std::{collections::HashMap, ffi::OsString, marker::Unpin, path::PathBuf, process::Stdio},
tokio::{
io::{AsyncWrite, AsyncWriteExt, BufWriter},
process::Command,
diff --git a/src/types.rs b/src/types.rs
index 0da5600..f5272e2 100644
--- a/src/types.rs
+++ b/src/types.rs
@@ -1,6 +1,5 @@
use {
aho_corasick::BuildError,
- futures::lock::Mutex,
regex::Error as RegexError,
std::{
clone::Clone,
@@ -8,7 +7,6 @@ use {
fmt::{self, Display, Formatter},
io::ErrorKind,
path::PathBuf,
- sync::Arc,
},
tokio::task::JoinError,
};