From f557417ebf5f1a251dff1a3350b09a58bf792632 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sun, 20 Apr 2025 20:40:37 +0200 Subject: [PATCH] passwd: Extract ask_new_password --- src/bin/passwd.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/bin/passwd.rs b/src/bin/passwd.rs index ef88106d48..7acce687f6 100644 --- a/src/bin/passwd.rs +++ b/src/bin/passwd.rs @@ -126,6 +126,17 @@ fn main() { exit(1); } + let new_password = ask_new_password(stdin, stdout, stderr); + + user.set_passwd(&new_password).unwrap_or_exit(1); + users.save().unwrap_or_exit(1); +} + +fn ask_new_password( + mut stdin: io::StdinLock<'_>, + mut stdout: io::StdoutLock<'_>, + mut stderr: io::Stderr, +) -> String { stdout.write_all(b"new password: ").r#try(&mut stderr); stdout.flush().r#try(&mut stderr); let Some(new_password) = stdin.read_passwd(&mut stdout).r#try(&mut stderr) else { @@ -147,7 +158,5 @@ fn main() { eprintln!("passwd: new password does not match confirm password"); exit(1); } - - user.set_passwd(&new_password).unwrap_or_exit(1); - users.save().unwrap_or_exit(1); + new_password }