1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 03:27:44 +00:00

sleep: Use fundu instead of uucore::parse_time::from_str

This commit is contained in:
Joining7943 2023-02-28 07:36:22 +01:00
parent 946aab37ed
commit 3a28b616d9
3 changed files with 8 additions and 1 deletions

1
Cargo.lock generated
View file

@ -3041,6 +3041,7 @@ name = "uu_sleep"
version = "0.0.17" version = "0.0.17"
dependencies = [ dependencies = [
"clap", "clap",
"fundu",
"uucore", "uucore",
] ]

View file

@ -16,6 +16,7 @@ path = "src/sleep.rs"
[dependencies] [dependencies]
clap = { workspace=true } clap = { workspace=true }
fundu = { workspace=true }
uucore = { workspace=true } uucore = { workspace=true }
[[bin]] [[bin]]

View file

@ -14,6 +14,7 @@ use uucore::{
}; };
use clap::{crate_version, Arg, ArgAction, Command}; use clap::{crate_version, Arg, ArgAction, Command};
use fundu::{self, DurationParser};
static ABOUT: &str = help_about!("sleep.md"); static ABOUT: &str = help_about!("sleep.md");
const USAGE: &str = help_usage!("sleep.md"); const USAGE: &str = help_usage!("sleep.md");
@ -61,10 +62,14 @@ pub fn uu_app() -> Command {
fn sleep(args: &[&str]) -> UResult<()> { fn sleep(args: &[&str]) -> UResult<()> {
let mut arg_error = false; let mut arg_error = false;
use fundu::TimeUnit::*;
let parser = DurationParser::with_time_units(&[Second, Minute, Hour, Day]);
let sleep_dur = args let sleep_dur = args
.iter() .iter()
.filter_map(|input| { .filter_map(|input| {
uucore::parse_time::from_str(input.trim()).ok().or_else(|| { parser.parse(input.trim()).ok().or_else(|| {
arg_error = true; arg_error = true;
show_error!("invalid time interval '{input}'"); show_error!("invalid time interval '{input}'");
None None