Add fresh default sessions and terminal status handling
This commit is contained in:
+18
-2
@@ -34,6 +34,7 @@ impl PtyHandle {
|
||||
pub struct PtyOutput {
|
||||
pub session: String,
|
||||
pub bytes: Vec<u8>,
|
||||
pub exited: bool,
|
||||
}
|
||||
|
||||
pub fn spawn_pty_session(
|
||||
@@ -75,14 +76,29 @@ pub fn spawn_pty_session(
|
||||
let mut buf = [0u8; 8192];
|
||||
loop {
|
||||
match reader.read(&mut buf) {
|
||||
Ok(0) => break,
|
||||
Ok(0) => {
|
||||
let _ = tx.send(PtyOutput {
|
||||
session: reader_session.clone(),
|
||||
bytes: Vec::new(),
|
||||
exited: true,
|
||||
});
|
||||
break;
|
||||
}
|
||||
Ok(n) => {
|
||||
let _ = tx.send(PtyOutput {
|
||||
session: reader_session.clone(),
|
||||
bytes: buf[..n].to_vec(),
|
||||
exited: false,
|
||||
});
|
||||
}
|
||||
Err(_) => break,
|
||||
Err(_) => {
|
||||
let _ = tx.send(PtyOutput {
|
||||
session: reader_session.clone(),
|
||||
bytes: Vec::new(),
|
||||
exited: true,
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user