Prepublish command

This commit is contained in:
Pantonshire committed 2022-06-04 21:47:31 +01:00
1 parent d397d50cdb
commit 0a5d300e64
2 files changed
+41 -1

No files matched your search

+40
View File
@@ -1,4 +1,44 @@
use std::{env, fs, process};
use chrono::Utc;
use blog::post::PostSource;
fn main() {
let mut failed = false;
let paths = env::args_os()
.skip(1);
for path in paths {
let contents = match fs::read_to_string(&path) {
Ok(contents) => contents,
Err(err) => {
eprintln!("failed to read {}: {}", path.to_string_lossy(), err);
failed = true;
continue
}
};
let mut source = match contents.parse::<PostSource>() {
Ok(source) => source,
Err(err) => {
eprintln!("failed to parse {}: {}", path.to_string_lossy(), err);
failed = true;
continue
},
};
*source.header_mut().published_mut() = Utc::now();
if let Err(err) = fs::write(&path, source.to_string()) {
eprintln!("failed to write {}: {}", path.to_string_lossy(), err);
failed = true;
continue
}
}
if failed {
process::exit(1);
}
}
+1 -1
View File
@@ -92,6 +92,6 @@ impl fmt::Display for Header {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
toml::to_string_pretty(self)
.map_err(|_| fmt::Error)
.and_then(|s| f.write_str(&s))
.and_then(|s| f.write_str(s.trim()))
}
}