use super::Cmd; use shitbox::args; use clap::{Arg, Command}; #[derive(Debug, Default)] pub struct Unlink; impl Cmd for Unlink { fn cli(&self) -> clap::Command { Command::new("unlink") .about("call the unlink function to remove the specified file") .author("Nathan Fisher") .version(env!("CARGO_PKG_VERSION")) .args([ args::verbose(), Arg::new("file") .value_name("FILE") .required(true) .num_args(1..), ]) } fn run(&self, matches: &clap::ArgMatches) -> Result<(), Box> { if let Some(files) = matches.get_many::("file") { for f in files { unistd::unlink(f)?; if matches.get_flag("verbose") { println!("unlink: {f}"); } } } Ok(()) } fn path(&self) -> Option { Some(shitbox::Path::UsrBin) } }