use portable_pty::{CommandBuilder, NativePtySystem, PtySize, PtySystem};
fn main() {
let pty_system = NativePtySystem::default();
let pair = pty_system
.openpty(PtySize {
rows: 24,
cols: 80,
pixel_width: 0,
pixel_height: 0,
})
.unwrap();
let cmd = CommandBuilder::new("whoami");
let mut child = pair.slave.spawn_command(cmd).unwrap();
drop(pair.slave);
let mut reader = pair.master.try_clone_reader().unwrap();
drop(pair.master);
let mut s = String::new();
reader.read_to_string(&mut s).unwrap();
print!("output: ");
for c in s.escape_debug() {
print!("{}", c);
}
println!("child status: {:?}", child.wait().unwrap());
}