diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-03-24 03:05:23 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-03-24 03:05:23 -0700 |
commit | 8aacb4d5fbb4909efa1531e7883c14865387ccd5 (patch) | |
tree | 86b2e343c4c0b7fa97375ca96743b2bfb9791fe6 | |
parent | 5868b2fe93f5b1f444d8b8d5ac5cca84e0d25551 (diff) | |
download | cppawk-8aacb4d5fbb4909efa1531e7883c14865387ccd5.tar.gz cppawk-8aacb4d5fbb4909efa1531e7883c14865387ccd5.tar.bz2 cppawk-8aacb4d5fbb4909efa1531e7883c14865387ccd5.zip |
don't create temp file when not needed.
-rwxr-xr-x | cppawk | 31 |
1 files changed, 17 insertions, 14 deletions
@@ -154,25 +154,28 @@ done awk="command $(quote "$awk")" prepro="command $(quote "$prepro")" -trap 'rm -f $tmp_file' EXIT INT TERM - if [ -n "$awk_file" ] ; then - tmp_file=$(mktemp) awk_file_dir=$(dirname "$awk_file") - $delhashbang "$awk_file" | \ - eval "$prepro $incopt\"$awk_file_dir\" $prepro_opts -" | \ - collapse > $tmp_file - [ $prepro_only ] \ - && cat $tmp_file \ - || eval "$awk $awk_opts -f $tmp_file -- \"\$@\"" + if [ $prepro_only ] ; then + $delhashbang "$awk_file" \ + | eval "$prepro $incopt\"$awk_file_dir\" $prepro_opts - | collapse" + else + trap 'rm -f $tmp_file' EXIT INT TERM + tmp_file=$(mktemp) + $delhashbang "$awk_file" \ + | eval "$prepro $incopt\"$awk_file_dir\" $prepro_opts - | collapse" \ + > $tmp_file + eval "$awk $awk_opts -f $tmp_file -- \"\$@\"" + fi elif [ $# -gt 0 ] ; then - tmp_file=$(mktemp) if [ $prepro_only ] ; then - printf "%s" "$1" | $delhashbang | \ - eval "$prepro $incopt"$(pwd)" $prepro_opts - | collapse" + printf "%s" "$1" | $delhashbang \ + | eval "$prepro $incopt"$(pwd)" $prepro_opts - | collapse" else - printf "%s" "$1" | $delhashbang | \ - eval "$prepro $incopt"$(pwd)" $prepro_opts - | collapse" > $tmp_file + trap 'rm -f $tmp_file' EXIT INT TERM + tmp_file=$(mktemp) + printf "%s" "$1" | $delhashbang \ + | eval "$prepro $incopt"$(pwd)" $prepro_opts - | collapse" > $tmp_file shift eval "$awk $awk_opts -f $tmp_file -- \"\$@\"" fi |