From 29593ee08fbe3935fbb6b48e5337c76e80101959 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Mon, 25 Jan 2021 16:31:45 -0300 Subject: mv build-aux/assert-todos.sh build-aux/workflow/ --- build-aux/workflow/assert-todos.sh | 57 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 build-aux/workflow/assert-todos.sh (limited to 'build-aux/workflow') diff --git a/build-aux/workflow/assert-todos.sh b/build-aux/workflow/assert-todos.sh new file mode 100755 index 0000000..1d568cb --- /dev/null +++ b/build-aux/workflow/assert-todos.sh @@ -0,0 +1,57 @@ +#!/bin/sh +set -eu + +if git grep FIXME | grep -v '^TODOs.md' | grep -v '^build-aux/workflow/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 { + exitstatus = 0 + h2flag = 0 + h2status = "" + prevline = "" + idx = 0 + delete ids[0] +} +h2flag == 1 { + split($0, l, " ") + timelinestatus = l[2] + if (h2status != timelinestatus) { + print "h2/timeline status mismatch for line " NR-1 + print prevline + print $0 + exitstatus = 1 + } + h2status = "" + h2flag = 0 +} + +/^## (TODO|DOING|WAITING|MEETING|INACTIVE|NEXT|CANCELLED|DONE)/ { + if (match($0, / \{#.*?\}$/) == 0) { + print "Missing ID for line " NR ":\n" $0 + exitstatus = 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 + exitstatus = 1 + } else { + arr[id] = 1 + } + + split($0, l, " ") + h2status = l[2] + h2flag = 1 + prevline = $0 +} + + +/^# Scratch$/ { + exit exitstatus +} +' TODOs.md -- cgit v1.2.3