From a0dd70b3413ca033535ae3d216a9c17b93fd76dd Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Tue, 15 Jul 2025 23:06:51 +0100 Subject: add req-list script --- requirements/scripts/req-list | 77 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100755 requirements/scripts/req-list (limited to 'requirements/scripts') diff --git a/requirements/scripts/req-list b/requirements/scripts/req-list new file mode 100755 index 0000000..093d0d2 --- /dev/null +++ b/requirements/scripts/req-list @@ -0,0 +1,77 @@ +#!/bin/bash + +requirements_dir="$(realpath "$(dirname $0)/..")" + +usage() +{ + echo " +Usage: req.sh list [options...] + + : req | dml | ass | need + + options: + + -S lists only unsatisfied requirements +" +} + +while getopts ":S" o +do + case "$o" in + S) + unsatisfied=1 + shift 1 + ;; + *) + usage + exit 1 + ;; + esac +done + +type="$1" +id="$2" + +if [ "$type" == "" ] +then + usage + exit 1 +fi + +case "$type" in + req) + dir="${requirements_dir}/catalogue" + ;; + dml) + dir="${requirements_dir}/data_models" + ;; + ass) + dir="${requirements_dir}/assumptions" + ;; + need) + dir="${requirements_dir}/needs" + ;; + *) + usage + exit 1 +esac + +if [ "$unsatisfied" == 1 ] +then + filenames=(${dir}/${type}-*${id}.md) + for filename in "${filenames[@]}" + do + satisfied="$(cat $filename | grep -E "^Satisfied by:")" + if [ -z "$satisfied" ] + then + echo "$(basename "$filename" | sed "s/.md$//")" + fi + done + exit 0 +fi + +filenames=(${dir}/${type}-*${id}.md) +for filename in "${filenames[@]}" +do + echo "$(basename "$filename" | sed "s/.md$//")" +done -- cgit v1.2.3