diff --git a/marzipan/src/__init__.py b/marzipan/src/__init__.py index 227333c..d48146f 100644 --- a/marzipan/src/__init__.py +++ b/marzipan/src/__init__.py @@ -43,6 +43,18 @@ def cpp(file, cpp_prep): return exc(params, stderr=pkgs.sys.stderr) +@click.command() +def parse_result_line(): + for outp in pkgs.sys.stdin: + match = pkgs.re.search(r'^RESULT .* \b(true|false)\b\.$', outp) + + if match: + result = match.group(1) + print(result, flush=True) + else: + pass + + @click.command() @click.argument("cpp_prep") @click.argument("awk_prep") @@ -153,5 +165,6 @@ main.add_command(clean) main.add_command(run_proverif) main.add_command(cpp) main.add_command(awk_prep) +main.add_command(parse_result_line) main.add_command(pretty_output) main.add_command(clean_warnings) diff --git a/marzipan/src/analyze.sh b/marzipan/src/analyze.sh index 4840e5a..b620312 100644 --- a/marzipan/src/analyze.sh +++ b/marzipan/src/analyze.sh @@ -43,12 +43,7 @@ metaverif() { run_proverif "${awk_prep}" "$@" \ | clean_warnings \ | tee "${log}" \ - | awk ' - /^RESULT/ { - gsub(/\./, "", $NF); - print($NF); - fflush(stdout); - }' \ + | exc rosenpass-marzipan parse-result-line \ | pretty_output "${cpp_prep}" } || { echo "TODO: Commented out some debug output"