diff options
author | Jesse Luehrs <doy@tozt.net> | 2021-12-14 20:20:00 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2021-12-14 20:20:00 -0500 |
commit | 4002204f0ce7ee98975ebbdec9c8afdf5445c4d0 (patch) | |
tree | 809766df0c30d9851ba323539f88672e574fdc15 | |
parent | 95098ed4bda1e7333de66ff94e309446322869b5 (diff) | |
download | ttyrec-bin-4002204f0ce7ee98975ebbdec9c8afdf5445c4d0.tar.gz ttyrec-bin-4002204f0ce7ee98975ebbdec9c8afdf5445c4d0.zip |
clean up a bit
-rw-r--r-- | src/bin/ttyrec/main.rs | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/src/bin/ttyrec/main.rs b/src/bin/ttyrec/main.rs index 55e24f6..f7d3500 100644 --- a/src/bin/ttyrec/main.rs +++ b/src/bin/ttyrec/main.rs @@ -63,30 +63,20 @@ enum Event { Error(anyhow::Error), } -async fn resize(event_w: &async_std::channel::Sender<Event>) { - let size = terminal_size::terminal_size().map_or( - (24, 80), - |(terminal_size::Width(w), terminal_size::Height(h))| (h, w), - ); - event_w - .send(Event::Resize(size)) - .await - // event_w is never closed, so this can never fail - .unwrap_or_else(|_| unreachable!()); -} - async fn async_main(opt: Opt) -> anyhow::Result<()> { let Opt { cmd, file } = opt; let (cmd, args) = get_cmd(cmd); - let size = terminal_size::terminal_size().map_or( - (24, 80), - |(terminal_size::Width(w), terminal_size::Height(h))| (h, w), - ); let fh = async_std::fs::File::create(file).await?; + let mut input = textmode::Input::new().await?; let _input_guard = input.take_raw_guard(); let mut stdout = async_std::io::stdout(); + + let size = terminal_size::terminal_size().map_or( + (24, 80), + |(terminal_size::Width(w), terminal_size::Height(h))| (h, w), + ); let child = async_std::process::Command::new(cmd) .args(args) .spawn_pty(Some(&pty_process::Size::new(size.0, size.1)))?; @@ -102,7 +92,19 @@ async fn async_main(opt: Opt) -> anyhow::Result<()> { let event_w = event_w.clone(); async_std::task::spawn(async move { while signals.next().await.is_some() { - resize(&event_w).await; + event_w + .send(Event::Resize( + terminal_size::terminal_size().map_or( + (24, 80), + |( + terminal_size::Width(w), + terminal_size::Height(h), + )| { (h, w) }, + ), + )) + .await + // event_w is never closed, so this can never fail + .unwrap_or_else(|_| unreachable!()); } }); } @@ -178,8 +180,6 @@ async fn async_main(opt: Opt) -> anyhow::Result<()> { }); } - resize(&event_w).await; - let mut writer = ttyrec::Writer::new(fh); loop { match event_r.recv().await? { |