Dominic Reich
624ee61121
Whenever I want to commit only some hunks of a file, this always commited the full file when it updated the lastmod frontmatter of changed files. making different commits for unrelated changes impossible (but it always held the lastmod date as accurate as possible) hope this helps
14 lines
691 B
Bash
Executable file
14 lines
691 B
Bash
Executable file
#!/bin/sh
|
|
# Contents of .git/hooks/pre-commit
|
|
# Replace `last_modified_at` timestamp with current time
|
|
# https://mademistakes.com/notes/adding-last-modified-timestamps-with-git/
|
|
# enhanced the script to either update the YAML or TOML frontmatter (as i used both O_o)
|
|
|
|
git diff --cached --name-status | grep -E -i "^(A|M).*\.(md)$" | while read a b; do
|
|
# YAML or TOML frontmatter?
|
|
(grep -E "^---$" $b > /dev/null) && (cat $b | sed "/---.*/,/---.*/s/^lastmod:.*$/lastmod: $(date -u "+%Y-%m-%dT%H:%M:%S%z")/" > tmp)
|
|
(grep -E "^\+\+\+$" $b > /dev/null) && (cat $b | sed "/+++.*/,/+++.*/s/^lastmod.*$/lastmod = '$(date -u "+%Y-%m-%dT%H:%M:%S%z")'/" > tmp)
|
|
mv tmp $b
|
|
git add -p $b
|
|
done
|
|
|