shitbox/src/cmd/nologin/mod.rs

40 lines
824 B
Rust
Raw Normal View History

use super::Cmd;
use clap::Command;
use std::process;
#[derive(Debug)]
pub struct Nologin {
name: &'static str,
path: Option<crate::Path>,
}
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<dyn std::error::Error>> {
eprintln!("I'm sorry, I can't let you do that, Dave");
process::exit(42);
}
fn path(&self) -> Option<crate::Path> {
self.path
}
}