oe7drt-website/.githooks/pre-commit
Dominic Reich 624ee61121
try to fix the git add problem on the pre-commit git hook
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
2024-12-27 06:50:01 +01:00

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