| #!/bin/bash -eu |
| |
| GOOD_STATUS=0 |
| BAD_STATUS=1 |
| SKIP_STATUS=125 |
| PROBLEM_STATUS=127 |
| |
| tmp_file=$(mktemp) |
| trap "rm -f '${tmp_file}'" EXIT |
| grep -v '^ ' "$1" > "${tmp_file}" |
| |
| if grep -q bad "${tmp_file}"; then |
| exit $BAD_STATUS |
| fi |
| |
| # func_a containing '2' in its top line is BAD |
| if grep -q 'func_a.*2' "${tmp_file}"; then |
| exit $BAD_STATUS |
| fi |
| |
| # func_b, func_c, and func_d with even values are bad in conjunction |
| if grep -q 'func_b.*4' "${tmp_file}" && \ |
| grep -q 'func_c.*6' "${tmp_file}" && \ |
| grep -q 'func_d.*8' "${tmp_file}"; then |
| exit $BAD_STATUS |
| fi |
| |
| # If none of the BADness conditions are met |
| exit $GOOD_STATUS |