mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-26 06:53:23 +00:00
feat(user): user management tool (#825)
* 用户管理工具 * 重构 * 改为多个bin文件入口 * bin文件的usage显示自身程序名而非固定程序名
This commit is contained in:
45
user/apps/user-manage/src/cmd/groupadd.rs
Normal file
45
user/apps/user-manage/src/cmd/groupadd.rs
Normal file
@ -0,0 +1,45 @@
|
||||
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);
|
||||
}
|
Reference in New Issue
Block a user