1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-27 19:17:43 +00:00

Remove time dependency from date

Also upgrades humantime_to_duration to the latest version, it switched from time to chrono. Because touch still depends on time, its humantime_to_duration package version deviates from the workspace version.
This commit is contained in:
Wandering Lethe 2023-06-05 21:41:32 +02:00
parent 82f5fec688
commit 42a22c12f1
No known key found for this signature in database
GPG key ID: 5010D8303D6CC36E
5 changed files with 45 additions and 21 deletions

47
Cargo.lock generated
View file

@ -272,7 +272,10 @@ checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
dependencies = [
"android-tzdata",
"iana-time-zone",
"js-sys",
"num-traits",
"time 0.1.45",
"wasm-bindgen",
"winapi",
]
@ -421,7 +424,7 @@ dependencies = [
"sha1",
"tempfile",
"textwrap",
"time",
"time 0.3.20",
"unindent",
"uu_arch",
"uu_base32",
@ -1079,7 +1082,7 @@ checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
dependencies = [
"cfg-if",
"libc",
"wasi",
"wasi 0.11.0+wasi-snapshot-preview1",
]
[[package]]
@ -1151,7 +1154,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "714764645f21cc70c4c151d7798dd158409641f37ad820bed65224aae403cbed"
dependencies = [
"regex",
"time",
"time 0.3.20",
]
[[package]]
name = "humantime_to_duration"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0a674b970a2bbad01671718ca07604ca89258dd5e25d9af835c14ac6e0bc792"
dependencies = [
"chrono",
"regex",
]
[[package]]
@ -1434,7 +1447,7 @@ checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
dependencies = [
"libc",
"log",
"wasi",
"wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys 0.45.0",
]
@ -2289,6 +2302,17 @@ dependencies = [
"syn",
]
[[package]]
name = "time"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
dependencies = [
"libc",
"wasi 0.10.0+wasi-snapshot-preview1",
"winapi",
]
[[package]]
name = "time"
version = "0.3.20"
@ -2528,9 +2552,8 @@ version = "0.0.19"
dependencies = [
"chrono",
"clap",
"humantime_to_duration",
"humantime_to_duration 0.3.0",
"libc",
"time",
"uucore",
"windows-sys 0.48.0",
]
@ -3224,8 +3247,8 @@ version = "0.0.19"
dependencies = [
"clap",
"filetime",
"humantime_to_duration",
"time",
"humantime_to_duration 0.2.1",
"time 0.3.20",
"uucore",
"windows-sys 0.48.0",
]
@ -3401,7 +3424,7 @@ dependencies = [
"sm3",
"tempfile",
"thiserror",
"time",
"time 0.3.20",
"uucore_procs",
"walkdir",
"wild",
@ -3446,6 +3469,12 @@ dependencies = [
"winapi-util",
]
[[package]]
name = "wasi"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"

View file

@ -286,7 +286,7 @@ fundu = "0.5.1"
gcd = "2.3"
glob = "0.3.1"
half = "2.2"
humantime_to_duration = "0.2.1"
humantime_to_duration = "0.3.0"
indicatif = "0.17"
is-terminal = "0.4.7"
itertools = "0.10.5"

View file

@ -17,8 +17,6 @@ path = "src/date.rs"
[dependencies]
chrono = { workspace=true }
#/ TODO: check if we can avoid chrono+time
time = { workspace=true }
clap = { workspace=true }
uucore = { workspace=true }
humantime_to_duration = { workspace=true }

View file

@ -9,7 +9,7 @@
// spell-checker:ignore (chrono) Datelike Timelike ; (format) DATEFILE MMDDhhmm ; (vars) datetime datetimes humantime
use chrono::format::{Item, StrftimeItems};
use chrono::{DateTime, Duration as ChronoDuration, FixedOffset, Local, Offset, Utc};
use chrono::{DateTime, Duration, FixedOffset, Local, Offset, Utc};
#[cfg(windows)]
use chrono::{Datelike, Timelike};
use clap::{crate_version, Arg, ArgAction, Command};
@ -18,7 +18,6 @@ use libc::{clock_settime, timespec, CLOCK_REALTIME};
use std::fs::File;
use std::io::{BufRead, BufReader};
use std::path::PathBuf;
use time::Duration;
use uucore::display::Quotable;
#[cfg(not(any(target_os = "redox")))]
use uucore::error::FromIo;
@ -226,13 +225,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
let iter = std::iter::once(date);
Box::new(iter)
}
DateSource::Human(ref input) => {
// Get the current DateTime<FixedOffset> and convert the input time::Duration to chrono::Duration
// for things like "1 year ago"
DateSource::Human(relative_time) => {
// Get the current DateTime<FixedOffset> for things like "1 year ago"
let current_time = DateTime::<FixedOffset>::from(Local::now());
let input_chrono = ChronoDuration::seconds(input.as_seconds_f32() as i64)
+ ChronoDuration::nanoseconds(input.subsec_nanoseconds() as i64);
let iter = std::iter::once(Ok(current_time + input_chrono));
let iter = std::iter::once(Ok(current_time + relative_time));
Box::new(iter)
}
DateSource::File(ref path) => {

View file

@ -18,7 +18,8 @@ path = "src/touch.rs"
[dependencies]
filetime = { workspace=true }
clap = { workspace=true }
humantime_to_duration = { workspace=true }
# TODO: use workspace dependency (0.3) when switching from time to chrono
humantime_to_duration = "0.2.1"
time = { workspace=true, features = ["parsing", "formatting", "local-offset", "macros"] }
uucore = { workspace=true, features=["libc"] }