diff --git a/Cargo.lock b/Cargo.lock index 4819641..f13c386 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2766,6 +2766,7 @@ dependencies = [ "rust-embed", "serde", "sqlx", + "time", "tokio", "toml", "tracing", diff --git a/Cargo.toml b/Cargo.toml index ea8c41a..5741fea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ mime_guess = "2.0.4" rust-embed = "6.8.1" serde = { version = "1.0.181", features = ["derive"] } sqlx = { version = "0.7.1", features = ["runtime-tokio", "sqlite"] } +time = { version = "0.3.25", features = ["formatting", "macros"] } tokio = { version = "1.29.1", features = ["full"] } toml = "0.7.6" tracing = "0.1.37" diff --git a/src/repo.rs b/src/repo.rs index 0debecd..8255b42 100644 --- a/src/repo.rs +++ b/src/repo.rs @@ -1,6 +1,7 @@ //! Utility functions for accessing a [`Repository`]. -use gix::{actor::IdentityRef, Commit}; +use gix::{actor::IdentityRef, date::Time, Commit}; +use time::macros::format_description; use crate::somehow; @@ -10,6 +11,12 @@ pub fn format_actor(author: IdentityRef<'_>) -> somehow::Result { Ok(String::from_utf8_lossy(&buffer).to_string()) } +pub fn format_time(time: Time) -> String { + time.format(format_description!( + "[year]-[month]-[day] [hour]:[minute]:[second] [offset_hour sign:mandatory][offset_minute]" + )) +} + pub fn format_commit_short(commit: &Commit<'_>) -> somehow::Result { let id = commit.id().shorten_or_id(); let summary = commit.message()?.summary(); diff --git a/src/web/commit_hash.rs b/src/web/commit_hash.rs index 5717a83..689b2a0 100644 --- a/src/web/commit_hash.rs +++ b/src/web/commit_hash.rs @@ -81,9 +81,9 @@ pub async fn get( summary: commit.message()?.summary().to_string(), message: commit.message_raw_sloppy().to_string(), author: repo::format_actor(author_info.actor())?, - author_date: author_info.time.to_bstring().to_string(), + author_date: repo::format_time(author_info.time), commit: repo::format_actor(committer_info.actor())?, - commit_date: committer_info.time.to_bstring().to_string(), + commit_date: repo::format_time(committer_info.time), parents, children, })