make testscript POSIX and shellchecked
This commit is contained in:
parent
5d664fc528
commit
a79a7cfdb8
@ -1,20 +1,18 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/sh
|
||||||
# POSIX sh would be better for folks on BSD, but unfortunately it has
|
|
||||||
# a hard time doing the stderr filtering below.
|
|
||||||
#
|
|
||||||
#
|
#
|
||||||
# This scripts expects stdin formatted like this:
|
# This scripts expects stdin formatted like this:
|
||||||
# <multi-line csv file>
|
# <multi-line csv file>
|
||||||
# RULES
|
# RULES
|
||||||
# <multi-line rules>
|
# <multi-line rules>
|
||||||
#
|
#
|
||||||
awk -v CSV="t.$$.csv" -v RULES="t.$$.csv.rules" '
|
cat > t.$$.input
|
||||||
BEGIN{output=CSV}
|
sed '1,/^RULES/d' t.$$.input > t.$$.csv.rules
|
||||||
/^RULES/{output=RULES}
|
sed '/^RULES/,$d' t.$$.input > t.$$.csv
|
||||||
!/^RULES/{print $0 >output}'
|
|
||||||
|
|
||||||
trap "rm -f t.$$.csv t.$$.csv.rules" EXIT ERR
|
trap 'rm -f t.$$.input t.$$.csv t.$$.csv.rules t.$$.stderr' EXIT
|
||||||
|
|
||||||
# Remove variable file name from error messages
|
# Remove variable file name from error messages
|
||||||
:; ( hledger -f csv:t.$$.csv --rules-file t.$$.csv.rules print "$@" ) \
|
mkfifo t.$$.stderr
|
||||||
2> >( sed -Ee "s/t.*.csv/input/" >&2 )
|
sed -Ee "s/t\.$$\.csv/input/" t.$$.stderr >&2 &
|
||||||
|
|
||||||
|
hledger -f csv:t.$$.csv --rules-file t.$$.csv.rules print "$@" 2> t.$$.stderr
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user