2023-06-12 12:40:15 +00:00
|
|
|
#!/usr/bin/env bash
|
2021-08-08 17:47:34 +00:00
|
|
|
|
2021-08-15 21:16:35 +00:00
|
|
|
set -e
|
|
|
|
|
|
|
|
get_header() {
|
|
|
|
HFILE="$1"
|
|
|
|
HEADER="$2"
|
|
|
|
|
|
|
|
FILTER="{ \
|
|
|
|
if (match(\$0, /^$HEADER: /)) {print substr(\$0, RLENGTH+1, length(\$0) - RLENGTH)}; \
|
|
|
|
if (\$0~/^$/) {exit}; \
|
|
|
|
if (!\$0~/^[^ ]*: .*$/) {exit}; \
|
|
|
|
}"
|
|
|
|
|
|
|
|
awk "$FILTER" "$HFILE"
|
|
|
|
}
|
2021-08-08 17:47:34 +00:00
|
|
|
|
|
|
|
render() {
|
2021-08-15 21:16:35 +00:00
|
|
|
NODATE="$1"
|
2021-08-08 17:47:34 +00:00
|
|
|
DIR="$2"
|
2021-08-15 21:16:35 +00:00
|
|
|
BASE="$3"
|
2021-08-08 17:47:34 +00:00
|
|
|
|
2021-08-15 21:16:35 +00:00
|
|
|
pushd "$DIR" > /dev/null
|
|
|
|
find . ! -path . -type d | while read -r FN
|
2021-08-08 17:47:34 +00:00
|
|
|
do
|
2021-08-15 21:16:35 +00:00
|
|
|
PAGE="$(echo "$FN" | sed 's/^\.\///g')"
|
|
|
|
#echo "FILE: $PAGE"
|
|
|
|
|
|
|
|
MD="$PAGE/note.md"
|
|
|
|
if [ ! -f "$MD" ]; then
|
|
|
|
echo "$MD doesn't exist"
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
SUBJECT="$(get_header "$MD" "Subject")"
|
|
|
|
FDATE="$(get_header "$MD" "X-Date" | sed 's/T.*$//g')"
|
|
|
|
|
|
|
|
if [ -z "$SUBJECT" ]; then
|
|
|
|
echo "No subject in $MD"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -z "$FDATE" ] && [ "$NODATE" == "0" ]; then
|
|
|
|
echo "No date in $MD"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -z "$FDATE" ]; then
|
|
|
|
echo "* [$SUBJECT]($BASE/$PAGE)"
|
|
|
|
else
|
|
|
|
|
|
|
|
echo "* $FDATE [$SUBJECT]($BASE/$PAGE)"
|
|
|
|
fi
|
2021-08-08 17:47:34 +00:00
|
|
|
done
|
2021-08-15 21:16:35 +00:00
|
|
|
popd > /dev/null
|
2021-08-08 17:47:34 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2021-08-15 21:16:35 +00:00
|
|
|
NODATE=0
|
|
|
|
if [ "$1" == "--nodate" ]; then
|
|
|
|
NODATE=1
|
|
|
|
shift
|
2021-08-08 17:47:34 +00:00
|
|
|
fi
|
|
|
|
|
2021-08-15 21:16:35 +00:00
|
|
|
if [ ! -d "$1" ]; then
|
2021-08-08 17:47:34 +00:00
|
|
|
echo "Missing source directory"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2021-08-15 21:16:35 +00:00
|
|
|
render "$NODATE" "$1" "$2" | sort -r
|