use expectrl::{self, Any, Eof};
#[cfg(not(feature = "async"))]
fn main() {
let mut session = expectrl::spawn("ls -al").expect("Can't spawn a session");
loop {
let m = session
.expect(Any::boxed(vec![
Box::new("\r"),
Box::new("\n"),
Box::new(Eof),
]))
.expect("Expect failed");
println!("{:?}", String::from_utf8_lossy(m.as_bytes()));
let is_eof = m[0].is_empty();
if is_eof {
break;
}
if m[0] == [b'\n'] {
continue;
}
println!("{:?}", String::from_utf8_lossy(&m[0]));
}
}
#[cfg(feature = "async")]
fn main() {
futures_lite::future::block_on(async {
let mut session = expectrl::spawn("ls -al").expect("Can't spawn a session");
loop {
let m = session
.expect(Any::boxed(vec![
Box::new("\r"),
Box::new("\n"),
Box::new(Eof),
]))
.await
.expect("Expect failed");
let is_eof = m.get(0).unwrap().is_empty();
if is_eof {
break;
}
if m.get(0).unwrap() == [b'\n'] {
continue;
}
println!("{:?}", String::from_utf8_lossy(m.get(0).unwrap()));
}
})
}