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:
commit
3d220513e3
3 changed files with 8 additions and 16 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -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",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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()
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue