1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 19:47:45 +00:00

Merge pull request #4942 from x-dune/pr-use-chrono

`pr` use chrono instead of time
This commit is contained in:
Sylvestre Ledru 2023-06-04 18:46:38 +02:00 committed by GitHub
commit 3d220513e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 16 deletions

2
Cargo.lock generated
View file

@ -2941,11 +2941,11 @@ dependencies = [
name = "uu_pr" name = "uu_pr"
version = "0.0.19" version = "0.0.19"
dependencies = [ dependencies = [
"chrono",
"clap", "clap",
"itertools", "itertools",
"quick-error", "quick-error",
"regex", "regex",
"time",
"uucore", "uucore",
] ]

View file

@ -16,11 +16,11 @@ path = "src/pr.rs"
[dependencies] [dependencies]
clap = { workspace=true } clap = { workspace=true }
time = { workspace=true, features = ["local-offset", "macros", "formatting"] }
uucore = { workspace=true, features=["entries"] } uucore = { workspace=true, features=["entries"] }
quick-error = { workspace=true } quick-error = { workspace=true }
itertools = { workspace=true } itertools = { workspace=true }
regex = { workspace=true } regex = { workspace=true }
chrono = { workspace=true }
[[bin]] [[bin]]
name = "pr" name = "pr"

View file

@ -6,6 +6,7 @@
// spell-checker:ignore (ToDO) adFfmprt, kmerge // spell-checker:ignore (ToDO) adFfmprt, kmerge
use chrono::{DateTime, Local};
use clap::{crate_version, Arg, ArgAction, ArgMatches, Command}; use clap::{crate_version, Arg, ArgAction, ArgMatches, Command};
use itertools::Itertools; use itertools::Itertools;
use quick_error::ResultExt; use quick_error::ResultExt;
@ -15,8 +16,6 @@ use std::fs::{metadata, File};
use std::io::{stdin, stdout, BufRead, BufReader, Lines, Read, Write}; use std::io::{stdin, stdout, BufRead, BufReader, Lines, Read, Write};
#[cfg(unix)] #[cfg(unix)]
use std::os::unix::fs::FileTypeExt; use std::os::unix::fs::FileTypeExt;
use time::macros::format_description;
use time::OffsetDateTime;
use quick_error::quick_error; use quick_error::quick_error;
use uucore::display::Quotable; use uucore::display::Quotable;
@ -37,8 +36,7 @@ const DEFAULT_COLUMN_WIDTH: usize = 72;
const DEFAULT_COLUMN_WIDTH_WITH_S_OPTION: usize = 512; const DEFAULT_COLUMN_WIDTH_WITH_S_OPTION: usize = 512;
const DEFAULT_COLUMN_SEPARATOR: &char = &TAB; const DEFAULT_COLUMN_SEPARATOR: &char = &TAB;
const FF: u8 = 0x0C_u8; const FF: u8 = 0x0C_u8;
const DATE_TIME_FORMAT: &[time::format_description::FormatItem] = const DATE_TIME_FORMAT: &str = "%b %d %H:%M %Y";
format_description!("[month repr:short] [day] [hour]:[minute] [year]");
mod options { mod options {
pub const HEADER: &str = "header"; pub const HEADER: &str = "header";
@ -571,10 +569,8 @@ fn build_options(
let line_separator = "\n".to_string(); let line_separator = "\n".to_string();
let last_modified_time = if is_merge_mode || paths[0].eq(FILE_STDIN) { let last_modified_time = if is_merge_mode || paths[0].eq(FILE_STDIN) {
// let date_time = Local::now(); let date_time = Local::now();
// date_time.format("%b %d %H:%M %Y").to_string() date_time.format(DATE_TIME_FORMAT).to_string()
let date_time = OffsetDateTime::now_local().unwrap();
date_time.format(&DATE_TIME_FORMAT).unwrap()
} else { } else {
file_last_modified_time(paths.first().unwrap()) file_last_modified_time(paths.first().unwrap())
}; };
@ -1215,12 +1211,8 @@ fn file_last_modified_time(path: &str) -> String {
.map(|i| { .map(|i| {
i.modified() i.modified()
.map(|x| { .map(|x| {
let date_time: OffsetDateTime = x.into(); let date_time: DateTime<Local> = x.into();
let offset = OffsetDateTime::now_local().unwrap().offset(); date_time.format(DATE_TIME_FORMAT).to_string()
date_time
.to_offset(offset)
.format(&DATE_TIME_FORMAT)
.unwrap()
}) })
.unwrap_or_default() .unwrap_or_default()
}) })