blob: 4e40bc831e207a18abb45652d020f598202d160e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
#!/bin/bash
requirements_dir="$(realpath "$(dirname $0)/..")"
usage()
{
echo "
Usage: req.sh list [options...] <type> [id]
type: req | dml | ass | need
id: filters items for the given id
options:
-S lists unsatisfied requirements
-P lists unsourced requirements
"
}
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
;;
esac
done
type="$1"
id="$2"
if [ "$type" == "" ]
then
echo "ERROR: you didn't provide a type!"
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
fi
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
|