Files
DragonOS/user/apps/user-manage/src/cmd/groupadd.rs
Jomo 03746da3d9 feat(user): user management tool (#825)
* 用户管理工具

* 重构

* 改为多个bin文件入口

* bin文件的usage显示自身程序名而非固定程序名
2024-06-05 13:00:19 +08:00

46 lines
1.1 KiB
Rust

use crate::{
check::check::GAddCheck,
error::error::{ErrorHandler, ExitStatus},
executor::executor::GAddExecutor,
parser::parser::GroupParser,
};
use libc::geteuid;
use std::process::exit;
#[path = "../check/mod.rs"]
mod check;
#[path = "../error/mod.rs"]
mod error;
#[path = "../executor/mod.rs"]
mod executor;
#[path = "../parser/mod.rs"]
mod parser;
#[allow(dead_code)]
fn main() {
let args = std::env::args().collect::<Vec<_>>();
if unsafe { geteuid() } != 0 {
ErrorHandler::error_handle(
"permission denied (are you root?)".to_string(),
ExitStatus::PermissionDenied,
)
}
if args.len() < 2 {
ErrorHandler::error_handle(
format!("usage: {} [options] groupname", args[0]),
ExitStatus::InvalidCmdSyntax,
);
}
let cmd = GroupParser::parse(args);
let info = GAddCheck::check(cmd);
let groupname = info.groupname.clone();
GAddExecutor::execute(info);
println!("Add group [{}] successfully!", groupname);
exit(ExitStatus::Success as i32);
}