Files
truecharts/.github/scripts/frontmatter.sh
T
Stavros kois a0ff446f07 again
2024-05-12 23:36:51 +03:00

54 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
[ "$DEBUG" == 'true' ] && set -x
[ "$STRICT" == 'true' ] && set -e
file_path="$1"
base_cmd="go-yq --front-matter=process"
# Check if the file has valid front matter
is_empty() {
if $(echo "$1" | grep -q "^null$"); then
return 0
fi
return 1
}
is_true() {
if $(echo "$1" | grep -q "^true$"); then
return 0
fi
return 1
}
# if file is empty
if [ -z "$(cat "$file_path")" ]; then
echo "file is empty"
echo -e "---\n" >"$file_path"
echo -e "---\n" >>"$file_path"
fi
echo "Checking front matter"
if ! grep -q "^---$" "$file_path"; then
echo "Front matter (start) not found, adding it"
content=$(cat "$file_path")
echo -e "---\n" >"$file_path"
echo -e "---\n" >>"$file_path"
echo "$content" >>"$file_path"
fi
# Get the title from the front matter
echo "Checking title"
title=$($base_cmd '.title' "$file_path")
# Check if the title is empty
if is_empty "$title"; then
$base_cmd -i '.title="Changelog"' "$file_path"
fi
echo "Checking pagefind"
pagefind=$($base_cmd '.pagefind' "$file_path")
if is_empty "$pagefind" || is_true "$pagefind"; then
$base_cmd -i '.pagefind=false' "$file_path"
fi