studio-umzu/scripts/add_update_frontmatter.sh

37 lines
1.1 KiB
Bash
Raw Normal View History

2025-08-27 16:56:14 +02:00
#!/bin/bash
# Current date for the 'updated' field
current_date=$(date +%F)
# Recursive search for all markdown files in the content folder
find ../content -type f -name "*.md" | while read file; do
# Check if the file has frontmatter enclosed in +++
if [ "$(head -n 1 "$file")" = "+++" ]; then
# Check if the 'date' field exists in the frontmatter
if grep -q '^date\s*=' "$file"; then
# Check if the 'updated' field is already present
if grep -q '^updated\s*=' "$file"; then
echo "✘ Skipped: 'updated' field already present in $file"
else
# Use awk to insert the 'updated' field after the 'date' field
awk -v date="$current_date" '
BEGIN { inserted=0 }
/^date\s*=/ && inserted == 0 {
print $0
print "updated = " date
inserted = 1
next
}
{ print }
' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
echo "✔ Inserted 'updated' after date in $file"
fi
else
echo "✘ No date field found in the frontmatter of $file"
fi
else
echo "✘ No frontmatter found in $file"
fi
done