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"
dependencies = [
"clap",
"fundu",
"uucore",
]

View file

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

View file

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