with procs

This commit is contained in:
Kasper Juul Hermansen 2022-12-18 14:59:55 +01:00
parent af12f2b8c9
commit db6f23440c
Signed by: kjuulh
GPG Key ID: 0F95C140730F2F23
2 changed files with 36 additions and 1 deletions

View File

@ -1,5 +1,6 @@
mod code;
mod network;
mod procs;
pub struct Stats;
@ -12,7 +13,11 @@ impl Stats {
impl util::Cmd for Stats {
fn cmd() -> eyre::Result<clap::Command> {
let cmd = clap::Command::new("stats")
.subcommands(&[code::Code::cmd()?, network::Network::cmd()?])
.subcommands(&[
code::Code::cmd()?,
network::Network::cmd()?,
procs::Procs::cmd()?,
])
.subcommand_required(true);
Ok(cmd)
@ -22,6 +27,7 @@ impl util::Cmd for Stats {
match args.subcommand() {
Some(("code", args)) => code::Code::exec(args),
Some(("network", args)) => network::Network::exec(args),
Some(("procs", args)) => procs::Procs::exec(args),
_ => Stats::run(),
}
}

29
crates/stats/src/procs.rs Normal file
View File

@ -0,0 +1,29 @@
pub struct Procs;
impl Procs {
fn run() -> eyre::Result<()> {
if let Err(_) = util::shell::run_with_input_and_output(&["procs", "--version"], "".into()) {
return Err(eyre::anyhow!(
"could not find procs, please install or add to PATH"
));
}
util::shell::run(&["procs"], None)?;
Ok(())
}
}
impl util::Cmd for Procs {
fn cmd() -> eyre::Result<clap::Command> {
let cmd = clap::Command::new("procs").subcommands(&[]);
Ok(cmd)
}
fn exec(args: &clap::ArgMatches) -> eyre::Result<()> {
match args.subcommand() {
_ => Procs::run(),
}
}
}