blob: 682c00840d6b8688e6b3e81cd922d6f1f0619f89 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
use futures::future::Future as _;
use futures::stream::Stream as _;
use std::io::Write as _;
mod input;
fn main() {
let mut argv = std::env::args();
argv.next().unwrap();
let cmd = argv.next().unwrap();
let args: Vec<_> = argv.collect();
let process = tokio_pty_process_stream::Process::new(
&cmd,
&args,
input::evented_stdin::Stdin::new(),
);
let _raw = crossterm::RawScreen::into_raw_mode().unwrap();
tokio::run(
process
.for_each(|ev| {
match ev {
tokio_pty_process_stream::Event::CommandStart {
..
} => {}
tokio_pty_process_stream::Event::Output { data } => {
let stdout = std::io::stdout();
let mut stdout = stdout.lock();
stdout.write_all(&data).unwrap();
stdout.flush().unwrap();
}
tokio_pty_process_stream::Event::CommandExit {
..
} => {}
}
futures::future::ok(())
})
.map_err(|e| panic!(e)),
);
}
|