#[derive(Debug,Clone)]
pub struct Setup {
tmp: String,
- display: String,
}
#[throws(AE)]
}
#[throws(AE)]
-fn prepare_xserver1() -> impl FnOnce() -> Result<String, AE> {
+fn prepare_xserver1() -> impl FnOnce() -> Result<(), AE> {
const DISPLAY : &str = "12";
let mut xcmd = Command::new("Xvfb");
throw!(anyhow!("Xvfb failed to start: wait status = {}", &e));
}
- let l = match l {
+ match l {
Some(Ok(l)) if l == DISPLAY => { l },
Some(Ok(l)) => throw!(anyhow!(
"Xfvb said {:?}, expected {:?}",
Some(Err(e)) => throw!(AE::from(e).context("failed to read from Xfvb")),
};
- Ok(l)
+ env::set_var("DISPLAY", format!("[::1]:{}", DISPLAY));
+
+ Ok(())
}
}
let xserver1 = prepare_xserver1().context("setup X server")?;
- let display = xserver1().context("wait for X server")?;
+ xserver1().context("wait for X server")?;
Setup {
tmp,
- display,
}
}
let s = setup()?;
println!("hi! {:#?}", &s);
+
+ let mut c = Command::new("xdpyinfo");
+ let s = c
+ .spawn().context("spawn")?
+ .wait().context("wait")?;
+ println!("s = {:?}", &s);
}