driver_tools/subcommands/restart/
mod.rs1pub mod args;
6
7use anyhow::{format_err, Result};
8use args::RestartCommand;
9use fidl_fuchsia_driver_development as fdd;
10use std::io::Write;
11
12pub async fn restart(
13 cmd: RestartCommand,
14 writer: &mut dyn Write,
15 driver_development_proxy: fdd::ManagerProxy,
16) -> Result<()> {
17 writeln!(writer, "Restarting driver hosts containing {}", cmd.driver_path)?;
18 match driver_development_proxy
19 .restart_driver_hosts(&cmd.driver_path.to_string(), fdd::RestartRematchFlags::empty())
20 .await?
21 {
22 Ok(n) => {
23 if n == 0 {
24 writeln!(
25 writer,
26 "Did not find any matching driver hosts. Is the driver running and listed by `ffx driver list --loaded`?"
27 )?;
28 } else {
29 writeln!(writer, "Restarted {} driver host{}.", n, if n == 1 { "" } else { "s" })?;
30 }
31 Ok(())
32 }
33 Err(err) => Err(format_err!("{:?}", err)),
34 }
35}