use super::Cmd; use clap::Command; use std::process; #[derive(Debug)] pub struct Nologin { name: &'static str, path: Option, } impl Default for Nologin { fn default() -> Self { Self { name: "nologin", path: Some(crate::Path::Sbin), } } } impl Cmd for Nologin { fn name(&self) -> &str { self.name } fn cli(&self) -> clap::Command { Command::new(self.name) .author("Nathan Fisher") .about("Denies a user account login ability") } fn run(&self, _matches: Option<&clap::ArgMatches>) -> Result<(), Box> { eprintln!("I'm sorry, I can't let you do that, Dave"); process::exit(42); } fn path(&self) -> Option { self.path } }