From 52a2b664e2234759eb86b1e1b902ed0c1a3781b8 Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Tue, 6 May 2025 10:47:10 +0200 Subject: [PATCH 1/4] uptime: don't return Result from print_nusers --- src/uu/uptime/src/uptime.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/uu/uptime/src/uptime.rs b/src/uu/uptime/src/uptime.rs index 2a2bce9f9..54e896a9b 100644 --- a/src/uu/uptime/src/uptime.rs +++ b/src/uu/uptime/src/uptime.rs @@ -160,7 +160,7 @@ fn uptime_with_file(file_path: &std::ffi::OsString) -> UResult<()> { show_error!("couldn't get boot time"); print_time(); print!("up ???? days ??:??,"); - print_nusers(Some(0))?; + print_nusers(Some(0)); print_loadavg(); set_exit_code(1); return Ok(()); @@ -170,7 +170,7 @@ fn uptime_with_file(file_path: &std::ffi::OsString) -> UResult<()> { if non_fatal_error { print_time(); print!("up ???? days ??:??,"); - print_nusers(Some(0))?; + print_nusers(Some(0)); print_loadavg(); return Ok(()); } @@ -207,7 +207,7 @@ fn uptime_with_file(file_path: &std::ffi::OsString) -> UResult<()> { } } - print_nusers(Some(user_count))?; + print_nusers(Some(user_count)); print_loadavg(); Ok(()) @@ -236,7 +236,7 @@ fn default_uptime(matches: &ArgMatches) -> UResult<()> { print_time(); print_uptime(None)?; - print_nusers(None)?; + print_nusers(None); print_loadavg(); Ok(()) @@ -276,7 +276,7 @@ fn process_utmpx(file: Option<&std::ffi::OsString>) -> (Option, usize) { (boot_time, nusers) } -fn print_nusers(nusers: Option) -> UResult<()> { +fn print_nusers(nusers: Option) { print!( "{}, ", match nusers { @@ -288,7 +288,6 @@ fn print_nusers(nusers: Option) -> UResult<()> { } } ); - Ok(()) } fn print_time() { From f6d19fab7945658e03b510deb32b7853d90c015d Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Tue, 6 May 2025 10:52:59 +0200 Subject: [PATCH 2/4] uptime: use same code structure in two blocks --- src/uu/uptime/src/uptime.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/uu/uptime/src/uptime.rs b/src/uu/uptime/src/uptime.rs index 54e896a9b..40d5b3dfe 100644 --- a/src/uu/uptime/src/uptime.rs +++ b/src/uu/uptime/src/uptime.rs @@ -194,17 +194,16 @@ fn uptime_with_file(file_path: &std::ffi::OsString) -> UResult<()> { #[cfg(target_os = "openbsd")] { - user_count = get_nusers(file_path.to_str().expect("invalid utmp path file")); - let upsecs = get_uptime(None); - if upsecs < 0 { + if upsecs >= 0 { + print_uptime(Some(upsecs))?; + } else { show_error!("couldn't get boot time"); set_exit_code(1); print!("up ???? days ??:??,"); - } else { - print_uptime(Some(upsecs))?; } + user_count = get_nusers(file_path.to_str().expect("invalid utmp path file")); } print_nusers(Some(user_count)); From 876f941e8ee25a7408ddc273b4011f1edf0c5610 Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Tue, 6 May 2025 10:56:56 +0200 Subject: [PATCH 3/4] uptime: add two empty lines --- src/uu/uptime/src/uptime.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/uu/uptime/src/uptime.rs b/src/uu/uptime/src/uptime.rs index 40d5b3dfe..d16dea1a6 100644 --- a/src/uu/uptime/src/uptime.rs +++ b/src/uu/uptime/src/uptime.rs @@ -35,6 +35,7 @@ const ABOUT: &str = concat!( const ABOUT: &str = help_about!("uptime.md"); const USAGE: &str = help_usage!("uptime.md"); + pub mod options { pub static SINCE: &str = "since"; pub static PATH: &str = "path"; @@ -54,6 +55,7 @@ pub enum UptimeError { #[error("extra operand '{0}'")] ExtraOperandError(String), } + impl UError for UptimeError { fn code(&self) -> i32 { 1 From 157f653780a52f078f20fc2bf68f01b2f3360be4 Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Tue, 6 May 2025 10:58:55 +0200 Subject: [PATCH 4/4] uptime: merge two imports --- src/uu/uptime/src/uptime.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/uu/uptime/src/uptime.rs b/src/uu/uptime/src/uptime.rs index d16dea1a6..240a35371 100644 --- a/src/uu/uptime/src/uptime.rs +++ b/src/uu/uptime/src/uptime.rs @@ -9,12 +9,10 @@ use chrono::{Local, TimeZone, Utc}; use clap::ArgMatches; use std::io; use thiserror::Error; -use uucore::error::UError; +use uucore::error::{UError, UResult}; use uucore::libc::time_t; use uucore::uptime::*; -use uucore::error::UResult; - use clap::{Arg, ArgAction, Command, ValueHint, builder::ValueParser}; use uucore::{format_usage, help_about, help_usage};