summaryrefslogtreecommitdiff
path: root/requirements
diff options
context:
space:
mode:
Diffstat (limited to 'requirements')
-rwxr-xr-xrequirements/scripts/req-list43
1 files changed, 33 insertions, 10 deletions
diff --git a/requirements/scripts/req-list b/requirements/scripts/req-list
index 093d0d2..4e40bc8 100755
--- a/requirements/scripts/req-list
+++ b/requirements/scripts/req-list
@@ -5,24 +5,31 @@ requirements_dir="$(realpath "$(dirname $0)/..")"
usage()
{
echo "
-Usage: req.sh list [options...] <type>
+Usage: req.sh list [options...] <type> [id]
- <type>: req | dml | ass | need
+ type: req | dml | ass | need
+ id: filters items for the given id
options:
- -S lists only unsatisfied requirements
+ -S lists unsatisfied requirements
+ -P lists unsourced requirements
"
}
-while getopts ":S" o
+while getopts ":S:P" o
do
case "$o" in
S)
unsatisfied=1
shift 1
;;
+ P)
+ unsourced=1
+ shift 1
+ ;;
*)
+ echo "ERROR: ${o} is not a valid option!"
usage
exit 1
;;
@@ -34,6 +41,7 @@ id="$2"
if [ "$type" == "" ]
then
+ echo "ERROR: you didn't provide a type!"
usage
exit 1
fi
@@ -67,11 +75,26 @@ 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
+if [ "$unsourced" == 1 ]
+then
+ filenames=(${dir}/${type}-*${id}.md)
+ for filename in "${filenames[@]}"
+ do
+ sourced="$(cat $filename | grep -E "^Sources?:")"
+ if [ -z "$sourced" ]
+ then
+ echo "$(basename "$filename" | sed "s/.md$//")"
+ fi
+ done
+fi
+
+if [ "$unsatisfied" == "" ] && [ "$unsourced" == "" ]
+then
+ filenames=(${dir}/${type}-*${id}.md)
+ for filename in "${filenames[@]}"
+ do
+ echo "$(basename "$filename" | sed "s/.md$//")"
+ done
+fi