#!/bin/sh set -eu if git grep FIXME | grep -v '^TODOs.md' | grep -v '^build-aux/assert-todos.sh' | grep -v '^build-aux/docbook-xsl/'; then echo "Found dangling FIXME markers on the project." echo "You should write them down properly on TODOs.md." exit 1 fi awk -F'{#' ' BEGIN { status=0 idx=0 delete ids[0] } /^## / { if (match($0, / \{#.*?\}$/) == 0) { print "Missing ID for line " NR ":\n" $0 status=1 } id_with_prefix = substr($2, 0, length($2) - 1) match(id_with_prefix, /^\w+-/) id = substr(id_with_prefix, RLENGTH + 1) if (id in arr) { print "Duplicate ID: " id status=1 } else { arr[id] = 1 } } /^# Improvements$/ { exit status } ' TODOs.md