diff options
Diffstat (limited to 'tests/test_util.fish')
-rw-r--r-- | tests/test_util.fish | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/test_util.fish b/tests/test_util.fish new file mode 100644 index 00000000..b81e17f6 --- /dev/null +++ b/tests/test_util.fish @@ -0,0 +1,58 @@ +# Utilities for the test runners + +function die + echo $argv[1] >&2 + exit 1 +end + +if not tty 0>&1 >/dev/null + function set_color + # do nothing + return 0 + end +end + +function say + set -l color_flags + while set -q argv[1] + switch $argv[1] + case -b -o -u + set color_flags $color_flags $argv[1] + case -- + set -e argv[1] + break + case -\* + case \* + break + end + set -e argv[1] + end + + if not set -q argv[1] + echo 'usage: say [flags] color [string...]' >&2 + return 1 + end + + if set_color $color_flags $argv[1] + set -e argv[1] + echo $argv + set -l stat $status + set_color reset + or return $stat + end +end + +function colordiff -d 'Colored diff output for unified diffs' + diff $argv | while read -l line + switch $line + case '+*' + say green $line + case '-*' + say red $line + case '@*' + say cyan $line + case '*' + echo $line + end + end +end |