diff options
Diffstat (limited to 'src/platform/fallback.rs')
| -rw-r--r-- | src/platform/fallback.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/platform/fallback.rs b/src/platform/fallback.rs index 09d82c6c..a533796f 100644 --- a/src/platform/fallback.rs +++ b/src/platform/fallback.rs @@ -13,6 +13,19 @@ pub(crate) fn set_default_plugin_pane_pwd( ) { } +pub(crate) fn forward_remote_bridge_stdio(stream: crate::ipc::LocalStream) -> std::io::Result<()> { + use interprocess::TryClone as _; + + let mut stdout = std::io::stdout().lock(); + let mut socket_to_stdout = stream.try_clone()?; + let mut stdin_to_socket = stream; + let _upload = std::thread::spawn(move || { + let mut stdin = std::io::stdin(); + let _ = std::io::copy(&mut stdin, &mut stdin_to_socket); + }); + std::io::copy(&mut socket_to_stdout, &mut stdout).map(|_| ()) +} + #[cfg(not(unix))] pub(super) fn read_terminal_grid_size() -> std::io::Result<(u16, u16)> { crossterm::terminal::size() |
