diff options
| author | Joe Carstairs <jcarstairs@scottlogic.com> | 2025-07-16 15:15:05 +0100 |
|---|---|---|
| committer | Joe Carstairs <jcarstairs@scottlogic.com> | 2025-07-16 15:20:30 +0100 |
| commit | 15396ad47e734c01d974f9b5de64b3fbdab2b7ea (patch) | |
| tree | 9291c201db09b84a9bfae53eecd15e9fb4599981 /requirements | |
| parent | 0a04288a44fe025f25a47392e066171948fb78e9 (diff) | |
add req-list option: p
Diffstat (limited to 'requirements')
| -rwxr-xr-x | requirements/scripts/req-list | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/requirements/scripts/req-list b/requirements/scripts/req-list index 4e40bc8..5641734 100755 --- a/requirements/scripts/req-list +++ b/requirements/scripts/req-list @@ -13,11 +13,12 @@ Usage: req.sh list [options...] <type> [id] options: -S lists unsatisfied requirements + -p lists requirements sourced from [id] -P lists unsourced requirements " } -while getopts ":S:P" o +while getopts ":S:P:p" o do case "$o" in S) @@ -28,6 +29,10 @@ do unsourced=1 shift 1 ;; + p) + sourced=1 + shift 1 + ;; *) echo "ERROR: ${o} is not a valid option!" usage @@ -64,8 +69,30 @@ case "$type" in exit 1 esac +if [ "$sourced" == 1 ] +then + echo " +${type} items sourced from id ${type}-*${id} +--------------------------------------------------------------------------- +" + filenames=(${dir}/${type}-*.md) + for filename in "${filenames[@]}" + do + is_sourced="$(cat $filename | grep -E "^Sources?:.*\b${type}-[0-9]*${id}\b")" + if [ -n "$is_sourced" ] + then + echo "$(basename "$filename" | sed "s/.md$//")" + fi + done + echo "" +fi + if [ "$unsatisfied" == 1 ] then + echo " +Unsatisfied ${type} items matching id *${id} +--------------------------------------------------------------------------- +" filenames=(${dir}/${type}-*${id}.md) for filename in "${filenames[@]}" do @@ -75,26 +102,37 @@ then echo "$(basename "$filename" | sed "s/.md$//")" fi done + echo "" fi if [ "$unsourced" == 1 ] then + echo " +Unsourced ${type} items matching id *${id} +--------------------------------------------------------------------------- +" filenames=(${dir}/${type}-*${id}.md) for filename in "${filenames[@]}" do - sourced="$(cat $filename | grep -E "^Sources?:")" - if [ -z "$sourced" ] + is_sourced="$(cat $filename | grep -E "^Sources?:")" + if [ -z "$is_sourced" ] then echo "$(basename "$filename" | sed "s/.md$//")" fi done + echo "" fi -if [ "$unsatisfied" == "" ] && [ "$unsourced" == "" ] +if [ "$sourced" == "" ] && [ "$unsatisfied" == "" ] && [ "$unsourced" == "" ] then + echo " +All ${type} items matching id *${id} +--------------------------------------------------------------------------- +" filenames=(${dir}/${type}-*${id}.md) for filename in "${filenames[@]}" do echo "$(basename "$filename" | sed "s/.md$//")" done + echo "" fi |
