aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/new/section.rs50
1 files changed, 40 insertions, 10 deletions
diff --git a/src/new/section.rs b/src/new/section.rs
index bfa2b2c..5e9f08c 100644
--- a/src/new/section.rs
+++ b/src/new/section.rs
@@ -5,8 +5,7 @@ use std::{
};
use anyhow::Context;
-use chrono::{DateTime, Local};
-use convert_case::{Case, Casing};
+use chrono::{Local, TimeDelta, TimeZone};
use log::debug;
use crate::{
@@ -15,6 +14,44 @@ use crate::{
new::MangledName,
};
+fn get_current_date() -> String {
+ let start = SystemTime::now();
+ let seconds_since_epoch: TimeDelta = TimeDelta::from_std(
+ start
+ .duration_since(UNIX_EPOCH)
+ .expect("Time went backwards"),
+ )
+ .expect("Time does not go backwards");
+
+ debug!(
+ "Adding a date with timestamp: {}",
+ seconds_since_epoch.num_seconds()
+ );
+
+ let our_date = format!(
+ "{}",
+ Local
+ .timestamp_opt(seconds_since_epoch.num_seconds(), 0)
+ // only has unwrap, no expect. But should always work
+ .unwrap()
+ .format("%Y-%m-%d %H:%M:%S%.f %:z")
+ );
+
+ // let date = Command::new("date")
+ // .args(["-d", &format!("@{}", seconds_since_epoch.num_seconds())])
+ // .output()
+ // .unwrap()
+ // .stdout;
+
+ // info!(
+ // "This is dated: '{}' vs. our date: '{}'",
+ // String::from_utf8(date).unwrap().strip_suffix('\n').unwrap(),
+ // our_date
+ // );
+
+ our_date
+}
+
pub fn generate_new_section(
config: &Config,
name: String,
@@ -30,14 +67,7 @@ pub fn generate_new_section(
.templates
.section
.replace("REPLACMENT_SECTION_TITLE", &name)
- .replace(
- "DATE",
- &format!(
- "{}",
- // FIXME: The time is not really precise enough to display the time. <2024-03-31>
- DateTime::<Local>::from(SystemTime::now()).format("%Y-%m-%d (%_H:%_S)")
- ),
- );
+ .replace("DATE", &get_current_date());
file_tree.add_file(GeneratedFile::new_clobber(
chapter_root