blob: ac720578e9e00725573fb4bd61da252037d06be8 (
plain) (
tree)
|
|
#!/bin/sh
set -eu
if git grep FIXME | grep -Ev '^(vendor/|scripts/assert-todos.sh|locale/)'; then
echo "Found dangling FIXME markers on the project."
echo "You should write them down properly on TODOs.org."
exit 1
fi
KNOWN_IDS=''
has_error=0
# shellcheck disable=2013
for todo in $(sed -e '/^\* Tasks$/,/^\* Improvements$/!d' TODOs.org | grep -nE '^\*\* .*$' | cut -d: -f1); do
if sed "${todo}q;d" TODOs.org | grep -qE '^\*\* (CANCELLED|DONE)'; then
ID_OFFSET=3
else
ID_OFFSET=2
fi
line_n="$((todo+ID_OFFSET))"
ID_LINE="$(sed "${line_n}q;d" TODOs.org)"
if echo "$ID_LINE" | grep -q '^:CUSTOM_ID: .*$'; then
ID="$(echo "$ID_LINE" | awk '{print $2}')"
if echo "$KNOWN_IDS" | grep -q "$ID"; then
echo "Duplicated ID: $ID"
has_error=1
else
if [ -z "$KNOWN_IDS" ]; then
KNOWN_IDS="$ID"
else
KNOWN_IDS="$KNOWN_IDS:$ID"
fi
fi
else
echo "Missing ID for TODO in line $line_n"
has_error=1
fi
done
exit "$has_error"
|