| 1 | #!/usr/bin/env bash
 | 
| 2 | 
 | 
| 3 | : ${LIB_OSH=stdlib/osh}
 | 
| 4 | source $LIB_OSH/bash-strict.sh
 | 
| 5 | source $LIB_OSH/task-five.sh
 | 
| 6 | 
 | 
| 7 | REPO_ROOT=$(cd "$(dirname $0)/.."; pwd)
 | 
| 8 | readonly REPO_ROOT
 | 
| 9 | 
 | 
| 10 | source build/common.sh
 | 
| 11 | 
 | 
| 12 | generate_one() {
 | 
| 13 |   pushd $REPO_ROOT
 | 
| 14 |   local mycpp=_bin/shwrap/mycpp_main
 | 
| 15 |   ninja $mycpp
 | 
| 16 | 
 | 
| 17 |   local ex=$1
 | 
| 18 |   shift
 | 
| 19 |   $mycpp '.:pyext' _tmp/mycpp-cfg-testdata mycpp/examples/"${ex}.py"
 | 
| 20 | 
 | 
| 21 |   mkdir -p testdata/control-flow-graph/$ex
 | 
| 22 |   for fact in "$@";
 | 
| 23 |   do
 | 
| 24 |     local fact_file="${fact}.facts"
 | 
| 25 |     cp _tmp/mycpp-facts/$fact_file testdata/control-flow-graph/$ex/$fact_file
 | 
| 26 |   done
 | 
| 27 |   popd
 | 
| 28 | }
 | 
| 29 | 
 | 
| 30 | generate_all() {
 | 
| 31 |   generate_one control_flow cf_edge
 | 
| 32 |   generate_one scoped_resource cf_edge
 | 
| 33 |   generate_one test_switch cf_edge
 | 
| 34 |   generate_one classes assign define
 | 
| 35 | }
 | 
| 36 | 
 | 
| 37 | task-five "$@"
 |