From c21ba2fa39f7407fdfd6de161947e0a4959d812f Mon Sep 17 00:00:00 2001 From: Dietrich Date: Wed, 11 Nov 2020 08:20:09 +0100 Subject: [PATCH] return from main function --- src/bin/create_user.rs | 22 +++++++--------------- src/lib.rs | 2 +- src/userlib/mod.rs | 5 +++-- tests/create_user_test.rs | 2 ++ tests/testfiles.rs | 1 + 5 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/bin/create_user.rs b/src/bin/create_user.rs index 415000c..f151cc4 100644 --- a/src/bin/create_user.rs +++ b/src/bin/create_user.rs @@ -4,9 +4,9 @@ extern crate clap; use clap::{App, Arg}; extern crate adduser; -use adduser::api::UserDBWrite; +use adduser::{api::UserDBWrite, UserLibError}; -fn main() { +fn main() -> Result<(), UserLibError> { env_logger::init(); let matches = App::new("Create a new linux user") .version("0.1.0") @@ -14,8 +14,6 @@ fn main() { .about("Create a linux user do not use this in production (yet)") .arg( Arg::new("username") - .short('n') - .long("username") .value_name("USERNAME") .about("the new users name") .takes_value(true) @@ -54,20 +52,14 @@ fn main() { let mut db = adduser::UserDBLocal::load_files(mf).unwrap(); - let _user_res: Result<&adduser::User, adduser::UserLibError> = db.new_user( + match db.new_user( adduser::api::CreateUserArgs::builder() .username(matches.value_of("username").unwrap()) // .delete_home(adduser::api::DeleteHome::Delete) .build() .unwrap(), - ); - - let user = adduser::User::default() - .username("fest".into()) - .shell_path("/bin/mash".into()) - .clone(); - - println!("{}", user); - - //db.new_user().expect("failed to create the user"); + ) { + Ok(_) => Ok(()), + Err(e) => Err(e), + } } diff --git a/src/lib.rs b/src/lib.rs index 94ee729..9e371e8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,3 @@ -#![feature(option_expect_none)] #![warn( clippy::all, //clippy::restriction, @@ -8,6 +7,7 @@ )] //#![allow(clippy::non_ascii_literal)] #![allow(clippy::missing_errors_doc)] +#![allow(clippy::clippy::multiple_crate_versions)] #[macro_use] extern crate lazy_static; diff --git a/src/userlib/mod.rs b/src/userlib/mod.rs index b15655a..e504254 100644 --- a/src/userlib/mod.rs +++ b/src/userlib/mod.rs @@ -235,9 +235,10 @@ impl UserDBWrite for UserDBLocal { opened.expect("failed to lock files!"); dbg!(&locked_p); locked_p.append(format!("{}", new_user))?; - self.users + assert!(self + .users .insert(args.username.to_owned(), new_user) - .expect_none("Is always none"); + .is_none()); self.users .get(args.username) .map_or_else(|| Err("User was not successfully added!".into()), Ok) diff --git a/tests/create_user_test.rs b/tests/create_user_test.rs index 1c23188..cb214e4 100644 --- a/tests/create_user_test.rs +++ b/tests/create_user_test.rs @@ -52,6 +52,8 @@ fn test_create_user_binary() { let s = Fixture::copy("shadow"); let g = Fixture::copy("group"); + dbg!(&p, &s, &g); + let pf = fs::read_to_string(&p.path).unwrap(); let mf = adduser::Files { diff --git a/tests/testfiles.rs b/tests/testfiles.rs index a5e4454..ef49fbe 100644 --- a/tests/testfiles.rs +++ b/tests/testfiles.rs @@ -5,6 +5,7 @@ use tempfile::TempDir; use std::ops::Deref; +#[derive(Debug)] pub struct Fixture { pub path: PathBuf, pub source: PathBuf,