From 6a208c6b34f1f48f4136475f5cbbd368030da8a9 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sun, 13 Apr 2025 16:51:27 +0200 Subject: [PATCH] Rustfmt --- src/bin/getty.rs | 25 ++++----------- src/bin/groupadd.rs | 16 ++++++---- src/bin/groupdel.rs | 6 ++-- src/bin/groupmod.rs | 19 +++++------ src/bin/id.rs | 23 +++++++------ src/bin/login.rs | 14 +++++--- src/bin/passwd.rs | 29 ++++++++++------- src/bin/su.rs | 17 ++++++---- src/bin/sudo.rs | 4 +-- src/bin/useradd.rs | 78 +++++++++++++++++++++------------------------ src/bin/userdel.rs | 9 ++++-- src/bin/usermod.rs | 34 +++++++++++--------- src/lib.rs | 16 +++++----- 13 files changed, 151 insertions(+), 139 deletions(-) diff --git a/src/bin/getty.rs b/src/bin/getty.rs index 1f2ca4491c..264f4c8218 100644 --- a/src/bin/getty.rs +++ b/src/bin/getty.rs @@ -120,13 +120,10 @@ pub fn getpty(columns: u32, lines: u32) -> (RawFd, String) { .expect("getty: failed to create PTY"); if let Ok(winsize_fd) = redox::dup(master, b"winsize") { - let _ = redox::write( - winsize_fd, - &redox_termios::Winsize { - ws_row: lines as u16, - ws_col: columns as u16, - }, - ); + let _ = redox::write(winsize_fd, &redox_termios::Winsize { + ws_row: lines as u16, + ws_col: columns as u16, + }); let _ = redox::close(winsize_fd); } @@ -137,12 +134,7 @@ pub fn getpty(columns: u32, lines: u32) -> (RawFd, String) { }) } -fn daemon( - tty_fd: RawFd, - clear: bool, - contain: bool, - stderr: &mut Stderr, -) { +fn daemon(tty_fd: RawFd, clear: bool, contain: bool, stderr: &mut Stderr) { let (columns, lines) = { let mut path = [0; 4096]; if let Ok(count) = redox::fpath(tty_fd as usize, &mut path) { @@ -198,12 +190,7 @@ fn daemon( match command.spawn() { Ok(mut process) => { - handle( - &mut event_queue, - tty_fd, - master_fd, - &mut process, - ); + handle(&mut event_queue, tty_fd, master_fd, &mut process); } Err(err) => fail(&format!("getty: failed to execute login: {}", err), stderr), } diff --git a/src/bin/groupadd.rs b/src/bin/groupadd.rs index 826bd1740d..00e538cc1a 100644 --- a/src/bin/groupadd.rs +++ b/src/bin/groupadd.rs @@ -7,7 +7,8 @@ use std::process::exit; use redox_users::{All, AllGroups, Config, Error, GroupBuilder}; -const _MAN_PAGE: &'static str = /* @MANSTART{groupadd} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{groupadd} */ + r#" NAME groupadd - add a user group @@ -44,7 +45,8 @@ fn main() { (@arg GROUP: +required "Add group GROUP") (@arg FORCE: -f --force "Force the status of the program to be 0 even if the group exists") (@arg GID: -g --gid +takes_value "Group id. Positive integer and must not be in use") - ).get_matches(); + ) + .get_matches(); let mut sys_groups = AllGroups::new(Config::default().writeable(true)).unwrap_or_exit(1); @@ -58,11 +60,11 @@ fn main() { exit(1); } id - }, + } None => sys_groups.get_unique_id().unwrap_or_else(|| { - eprintln!("groupadd: no available gid"); - exit(1); - }) + eprintln!("groupadd: no available gid"); + exit(1); + }), }; let group = GroupBuilder::new(groupname).gid(gid); @@ -70,7 +72,7 @@ fn main() { Ok(_) => (), Err(Error::GroupAlreadyExists) if args.is_present("FORCE") => { exit(0); - }, + } Err(err) => { eprintln!("groupadd: {}", err); exit(1); diff --git a/src/bin/groupdel.rs b/src/bin/groupdel.rs index 9e02d6322f..b369721c48 100644 --- a/src/bin/groupdel.rs +++ b/src/bin/groupdel.rs @@ -4,7 +4,8 @@ extern crate clap; use extra::option::OptionalExt; use redox_users::{All, AllGroups, Config}; -const _MAN_PAGE: &'static str = /* @MANSTART{groupdel} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{groupdel} */ + r#" NAME groupdel - modify system files to delete groups @@ -33,7 +34,8 @@ fn main() { (author: "Wesley Hershberger") (about: "Removes a group from the system using redox_users") (@arg GROUP: +required "Removes group GROUP") - ).get_matches(); + ) + .get_matches(); let group = matches.value_of("GROUP").unwrap(); diff --git a/src/bin/groupmod.rs b/src/bin/groupmod.rs index b4713f97cc..ae80675882 100644 --- a/src/bin/groupmod.rs +++ b/src/bin/groupmod.rs @@ -6,7 +6,8 @@ use std::process::exit; use extra::option::OptionalExt; use redox_users::{All, AllGroups, AllUsers, Config}; -const _MAN_PAGE: &'static str = /* @MANSTART{groupmod} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{groupmod} */ + r#" NAME groupmod - modify group information @@ -45,23 +46,23 @@ fn main() { (@arg GROUP: +required "Modify GROUP") (@arg GID: -g --gid +takes_value "Change GROUP's group id. See man page for details") (@arg NAME: -n --name +takes_value "Change GROUP's name") - ).get_matches(); + ) + .get_matches(); let groupname = args.value_of("GROUP").unwrap(); let mut sys_groups = AllGroups::new(Config::default().writeable(true)).unwrap_or_exit(1); { - let group = sys_groups - .get_mut_by_name(groupname) - .unwrap_or_else(|| { - eprintln!("groupmod: group not found: {}", groupname); - exit(1); - }); + let group = sys_groups.get_mut_by_name(groupname).unwrap_or_else(|| { + eprintln!("groupmod: group not found: {}", groupname); + exit(1); + }); if let Some(gid) = args.value_of("GID") { let gid = gid.parse::().unwrap_or_exit(1); // Update users - let mut sys_users = AllUsers::authenticator(Config::default().writeable(true)).unwrap_or_exit(1); + let mut sys_users = + AllUsers::authenticator(Config::default().writeable(true)).unwrap_or_exit(1); for user in sys_users.iter_mut() { if user.gid == group.gid { user.gid = gid; diff --git a/src/bin/id.rs b/src/bin/id.rs index e1f2668407..bda9cb1e58 100644 --- a/src/bin/id.rs +++ b/src/bin/id.rs @@ -5,9 +5,10 @@ use std::env::args; use std::process::exit; use extra::option::OptionalExt; -use redox_users::{get_egid, get_gid, get_euid, get_uid, All, AllUsers, AllGroups, Config}; +use redox_users::{All, AllGroups, AllUsers, Config, get_egid, get_euid, get_gid, get_uid}; -const _MAN_PAGE: &'static str = /* @MANSTART{id} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{id} */ + r#" NAME id - display user identity @@ -67,7 +68,7 @@ pub fn main() { let args = match &*args().nth(0).unwrap_or(String::new()) { "whoami" => app.get_matches_from(["id", "-un"].iter()), - _ => app.get_matches() + _ => app.get_matches(), }; // Display the different group IDs (effective and real) @@ -79,16 +80,17 @@ pub fn main() { println!("{} {}", egid, gid); exit(0); - } + } - // Display effective/real process user ID UNIX user name - if args.is_present("USER") && args.is_present("NAME") { + // Display effective/real process user ID UNIX user name + if args.is_present("USER") && args.is_present("NAME") { // Did they pass -r? If so, we show the real let uid = if args.is_present("REAL") { get_uid() } else { get_euid() - }.unwrap_or_exit(1); + } + .unwrap_or_exit(1); let users = AllUsers::basic(Config::default()).unwrap_or_exit(1); let user = users.get_by_id(uid).unwrap_or_exit(1); @@ -113,14 +115,15 @@ pub fn main() { exit(0); } - // Display effective/real process group ID UNIX group name - if args.is_present("GROUP") && args.is_present("NAME") { + // Display effective/real process group ID UNIX group name + if args.is_present("GROUP") && args.is_present("NAME") { // Did they pass -r? If so we show the real one let gid = if args.is_present("REAL") { get_gid() } else { get_egid() - }.unwrap_or_exit(1); + } + .unwrap_or_exit(1); let groups = AllGroups::new(Config::default()).unwrap_or_exit(1); let group = groups.get_by_id(gid).unwrap_or_exit(1); diff --git a/src/bin/login.rs b/src/bin/login.rs index b159123d0d..6bbd59cafa 100644 --- a/src/bin/login.rs +++ b/src/bin/login.rs @@ -6,11 +6,12 @@ use std::io::{self, Write}; use std::str; use extra::option::OptionalExt; -use termion::input::TermRead; use redox_users::{All, AllUsers, Config}; +use termion::input::TermRead; use userutils::spawn_shell; -const _MAN_PAGE: &'static str = /* @MANSTART{login} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{login} */ + r#" NAME login - log into the computer @@ -39,7 +40,8 @@ pub fn main() { let _args = clap_app!(login => (author: "Jeremy Soller, Jose Narvaez") (about: "Login as a user") - ).get_matches(); + ) + .get_matches(); if let Ok(mut issue) = File::open(ISSUE_FILE) { io::copy(&mut issue, &mut stdout).r#try(&mut stderr); @@ -66,7 +68,7 @@ pub fn main() { stdout.write(b"\n").r#try(&mut stderr); stdout.flush().r#try(&mut stderr); continue; - }, + } Some(user) => { if user.is_passwd_blank() { if let Ok(mut motd) = File::open(MOTD_FILE) { @@ -78,7 +80,9 @@ pub fn main() { break; } - stdout.write_all(b"\x1B[1mpassword:\x1B[0m ") .r#try(&mut stderr); + stdout + .write_all(b"\x1B[1mpassword:\x1B[0m ") + .r#try(&mut stderr); stdout.flush().r#try(&mut stderr); if let Some(password) = stdin.read_passwd(&mut stdout).r#try(&mut stderr) { stdout.write(b"\n").r#try(&mut stderr); diff --git a/src/bin/passwd.rs b/src/bin/passwd.rs index 3a24960310..c84effc365 100644 --- a/src/bin/passwd.rs +++ b/src/bin/passwd.rs @@ -6,10 +6,11 @@ use std::io::Write; use std::process::exit; use extra::option::OptionalExt; +use redox_users::{All, AllUsers, Config, get_uid}; use termion::input::TermRead; -use redox_users::{get_uid, All, AllUsers, Config}; -const _MAN_PAGE: &'static str = /* @MANSTART{passwd} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{passwd} */ + r#" NAME passwd - modify a user's password @@ -49,7 +50,8 @@ fn main() { (about: "Set user passwords") (@arg LOGIN: "Apply to login. Sets password for current user if not supplied") (@arg LOCK: -l --lock "Lock the password for an account (no login)") - ).get_matches(); + ) + .get_matches(); let uid = get_uid().unwrap_or_exit(1); let mut users = AllUsers::authenticator(Config::default().writeable(true)).unwrap_or_exit(1); @@ -57,13 +59,13 @@ fn main() { { let user = match args.value_of("LOGIN") { Some(login) => users.get_mut_by_name(login).unwrap_or_else(|| { - eprintln!("passwd: user does not exist: {}", login); - exit(1); - }), + eprintln!("passwd: user does not exist: {}", login); + exit(1); + }), None => users.get_mut_by_id(uid).unwrap_or_else(|| { - eprintln!("passwd: you do not exist"); - exit(1); - }) + eprintln!("passwd: you do not exist"); + exit(1); + }), }; if args.is_present("LOCK") { @@ -100,7 +102,9 @@ fn main() { stdout.write(b"\nconfirm password: ").r#try(&mut stderr); stdout.flush().r#try(&mut stderr); - if let Some(confirm_password) = stdin.read_passwd(&mut stdout).r#try(&mut stderr) { + if let Some(confirm_password) = + stdin.read_passwd(&mut stdout).r#try(&mut stderr) + { stdout.write(b"\n").r#try(&mut stderr); stdout.flush().r#try(&mut stderr); @@ -123,7 +127,10 @@ fn main() { exit(1); } } else { - eprintln!("passwd: you do not have permission to set the password of '{}'", user.user); + eprintln!( + "passwd: you do not have permission to set the password of '{}'", + user.user + ); exit(1); } } diff --git a/src/bin/su.rs b/src/bin/su.rs index 7c5cfc994d..51bc496a2f 100644 --- a/src/bin/su.rs +++ b/src/bin/su.rs @@ -6,11 +6,12 @@ use std::process::exit; use std::str; use extra::option::OptionalExt; +use redox_users::{All, AllUsers, Config, get_uid}; use termion::input::TermRead; -use redox_users::{get_uid, All, AllUsers, Config}; use userutils::spawn_shell; -const _MAN_PAGE: &'static str = /* @MANSTART{su} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{su} */ + r#" NAME su - substitute user identity @@ -42,11 +43,10 @@ pub fn main() { (author: "Jeremy Soller, Jose Narvaez") (about: "substitue user identity") (@arg LOGIN: "Login as LOGIN. Default is \'root\'") - ).get_matches(); + ) + .get_matches(); - let target_user = args - .value_of("LOGIN") - .unwrap_or("root"); + let target_user = args.value_of("LOGIN").unwrap_or("root"); let uid = get_uid().unwrap_or_exit(1); @@ -63,7 +63,10 @@ pub fn main() { stdout.flush().unwrap_or_exit(1); // Read the password, reading an empty string if CTRL-d is specified - let password = stdin.read_passwd(&mut stdout).r#try(&mut stderr).unwrap_or(String::new()); + let password = stdin + .read_passwd(&mut stdout) + .r#try(&mut stderr) + .unwrap_or(String::new()); writeln!(stderr, "\n").unwrap_or_exit(1); diff --git a/src/bin/sudo.rs b/src/bin/sudo.rs index 8058912f80..53acd03edb 100644 --- a/src/bin/sudo.rs +++ b/src/bin/sudo.rs @@ -1,10 +1,10 @@ use std::env; use std::io::{self, Write}; use std::os::unix::process::CommandExt; -use std::process::{exit, Command}; +use std::process::{Command, exit}; use extra::option::OptionalExt; -use redox_users::{get_uid, All, AllGroups, AllUsers, Config}; +use redox_users::{All, AllGroups, AllUsers, Config, get_uid}; use termion::input::TermRead; const MAX_ATTEMPTS: u16 = 3; diff --git a/src/bin/useradd.rs b/src/bin/useradd.rs index 037b19d695..2cb267f528 100644 --- a/src/bin/useradd.rs +++ b/src/bin/useradd.rs @@ -7,7 +7,8 @@ use extra::option::OptionalExt; use redox_users::{All, AllGroups, AllUsers, Config, GroupBuilder, UserBuilder}; use userutils::create_user_dir; -const _MAN_PAGE: &'static str = /* @MANSTART{useradd} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{useradd} */ + r#" NAME useradd - add a new user @@ -105,12 +106,14 @@ fn main() { -u --uid +takes_value "Set LOGIN's user id. Positive ineger and must not be in use.") - ).get_matches(); + ) + .get_matches(); // unwrap is safe because of "+required". clap-rs is cool... let login = args.value_of("LOGIN").unwrap(); - let mut sys_users = AllUsers::authenticator(Config::default().writeable(true)).unwrap_or_exit(1); + let mut sys_users = + AllUsers::authenticator(Config::default().writeable(true)).unwrap_or_exit(1); let mut sys_groups = AllGroups::new(Config::default().writeable(true)).unwrap_or_exit(1); let uid = match args.value_of("UID") { @@ -121,13 +124,11 @@ fn main() { exit(1); } id - }, - None => sys_users - .get_unique_id() - .unwrap_or_else(|| { - eprintln!("useradd: no available uid"); - exit(1); - }) + } + None => sys_users.get_unique_id().unwrap_or_else(|| { + eprintln!("useradd: no available uid"); + exit(1); + }), }; let gid = if args.is_present("NO_USER_GROUP") { @@ -148,13 +149,11 @@ fn main() { exit(1); } id - }, - None => sys_groups - .get_unique_id() - .unwrap_or_else(|| { - eprintln!("useradd: no available gid"); - exit(1); - }) + } + None => sys_groups.get_unique_id().unwrap_or_else(|| { + eprintln!("useradd: no available gid"); + exit(1); + }), }; sys_groups .add_group(GroupBuilder::new(login).gid(id).user(login)) @@ -165,35 +164,32 @@ fn main() { id }; - let gecos = args - .value_of("COMMENT") - .unwrap_or(login); + let gecos = args.value_of("COMMENT").unwrap_or(login); //Ugly way to satisfy the borrow checker... let mut sys_homes = String::from(DEFAULT_HOME); - let userhome = args - .value_of("HOME_DIR") - .unwrap_or_else(|| { - if args.is_present("CREATE_HOME") { - sys_homes.push_str("/"); - sys_homes.push_str(&login); - sys_homes.as_str() - } else { - "/" - } - }); + let userhome = args.value_of("HOME_DIR").unwrap_or_else(|| { + if args.is_present("CREATE_HOME") { + sys_homes.push_str("/"); + sys_homes.push_str(&login); + sys_homes.as_str() + } else { + "/" + } + }); - let shell = args - .value_of("SHELL") - .unwrap_or(DEFAULT_SHELL); + let shell = args.value_of("SHELL").unwrap_or(DEFAULT_SHELL); - let user = UserBuilder::new(login).uid(uid).gid(gid).name(gecos).home(userhome).shell(shell); - sys_users - .add_user(user) - .unwrap_or_else(|err| { - eprintln!("useradd: {}: {}", err, login); - exit(1); - }); + let user = UserBuilder::new(login) + .uid(uid) + .gid(gid) + .name(gecos) + .home(userhome) + .shell(shell); + sys_users.add_user(user).unwrap_or_else(|err| { + eprintln!("useradd: {}: {}", err, login); + exit(1); + }); // Make sure to try and create the user/groups before we create // their home, that way we get a permissions error that makes diff --git a/src/bin/userdel.rs b/src/bin/userdel.rs index bbb4720e7d..cd0275ce56 100644 --- a/src/bin/userdel.rs +++ b/src/bin/userdel.rs @@ -8,7 +8,8 @@ use extra::option::OptionalExt; use redox_users::{All, AllGroups, AllUsers, Config}; use userutils::AllGroupsExt; -const _MAN_PAGE: &'static str = /* @MANSTART{userdel} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{userdel} */ + r#" NAME userdel - modify system files to delete users @@ -41,11 +42,13 @@ fn main() { (about: "Removes system users using redox_users") (@arg LOGIN: +required "Remove user LOGIN") (@arg REMOVE: -r --remove "Remove the user's home and all files and directories inside") - ).get_matches(); + ) + .get_matches(); let login = args.value_of("LOGIN").unwrap(); - let mut sys_users = AllUsers::authenticator(Config::default().writeable(true)).unwrap_or_exit(1); + let mut sys_users = + AllUsers::authenticator(Config::default().writeable(true)).unwrap_or_exit(1); let mut sys_groups = AllGroups::new(Config::default().writeable(true)).unwrap_or_exit(1); { sys_groups.remove_user_from_all_groups(login); diff --git a/src/bin/usermod.rs b/src/bin/usermod.rs index edf3ea87cd..2a02a7b22d 100644 --- a/src/bin/usermod.rs +++ b/src/bin/usermod.rs @@ -6,9 +6,10 @@ use std::process::exit; use extra::option::OptionalExt; use redox_users::{All, AllGroups, AllUsers, Config}; -use userutils::{create_user_dir, AllGroupsExt}; +use userutils::{AllGroupsExt, create_user_dir}; -const _MAN_PAGE: &'static str = /* @MANSTART{usermod} */ r#" +const _MAN_PAGE: &'static str = /* @MANSTART{usermod} */ + r#" NAME usermod - modify user information @@ -116,32 +117,35 @@ fn main() { let login = args.value_of("LOGIN").unwrap(); //TODO: Does not always need shadowfile access - let mut sys_users = AllUsers::authenticator(Config::default().writeable(true)).unwrap_or_exit(1); + let mut sys_users = + AllUsers::authenticator(Config::default().writeable(true)).unwrap_or_exit(1); let mut sys_groups; if let Some(new_groups) = args.value_of("SET_GROUPS") { sys_groups = AllGroups::new(Config::default().writeable(true)).unwrap_or_exit(1); sys_groups.remove_user_from_all_groups(login); - sys_groups.add_user_to_groups(login, new_groups.split(',').collect()).unwrap_or_exit(1); + sys_groups + .add_user_to_groups(login, new_groups.split(',').collect()) + .unwrap_or_exit(1); sys_groups.save().unwrap_or_exit(1); } if let Some(new_groups) = args.value_of("APPEND_GROUPS") { sys_groups = AllGroups::new(Config::default().writeable(true)).unwrap_or_exit(1); - sys_groups.add_user_to_groups(login, new_groups.split(',').collect()).unwrap_or_exit(1); + sys_groups + .add_user_to_groups(login, new_groups.split(',').collect()) + .unwrap_or_exit(1); sys_groups.save().unwrap_or_exit(1); } - let uid = args - .value_of("UID") - .map(|uid| { - let uid = uid.parse::().unwrap_or_exit(1); - if let Some(_user) = sys_users.get_by_id(uid) { - eprintln!("usermod: userid already in use: {}", uid); - exit(1); - } - uid - }); + let uid = args.value_of("UID").map(|uid| { + let uid = uid.parse::().unwrap_or_exit(1); + if let Some(_user) = sys_users.get_by_id(uid) { + eprintln!("usermod: userid already in use: {}", uid); + exit(1); + } + uid + }); { let user = sys_users.get_mut_by_name(&login).unwrap_or_else(|| { diff --git a/src/lib.rs b/src/lib.rs index 34e2c2507c..c0a7fb5d47 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -18,10 +18,10 @@ use std::io::Result as IoResult; -use redox_users::{auth, All, AllGroups, Result, User, Error}; -use libredox::call::{open, fchown}; +use libredox::call::{fchown, open}; use libredox::error::Result as SysResult; -use libredox::flag::{O_CREAT, O_DIRECTORY, O_CLOEXEC}; +use libredox::flag::{O_CLOEXEC, O_CREAT, O_DIRECTORY}; +use redox_users::{All, AllGroups, Error, Result, User, auth}; const DEFAULT_MODE: u16 = 0o700; @@ -38,7 +38,7 @@ impl AllGroupsExt for AllGroups { for groupname in new_groups { let group = match self.get_mut_by_name(groupname) { Some(group) => group, - None => return Err(Error::UserNotFound) + None => return Err(Error::UserNotFound), }; group.users.push(login.to_string()); } @@ -48,8 +48,7 @@ impl AllGroupsExt for AllGroups { /// Remove a user from all groups of which they are a member fn remove_user_from_all_groups(&mut self, login: &str) { for group in self.iter_mut() { - let op_pos = group.users.iter() - .position(|username| username == login ); + let op_pos = group.users.iter().position(|username| username == login); if let Some(indx) = op_pos { group.users.remove(indx); } @@ -78,13 +77,14 @@ pub fn spawn_shell(user: &User) -> IoResult { let mut child = command.spawn()?; match child.wait()?.code() { Some(code) => Ok(code), - None => Ok(1) + None => Ok(1), } } /// Creates a directory with 700 user:user permissions pub fn create_user_dir(user: &User, dir: T) -> SysResult<()> - where T: AsRef + std::convert::AsRef<[u8]> +where + T: AsRef + std::convert::AsRef<[u8]>, { let fd = open(dir, O_CREAT | O_DIRECTORY | O_CLOEXEC, DEFAULT_MODE)?; fchown(fd, user.uid as u32, user.gid as u32)?;