mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-24 10:23:43 +08:00
68 lines
1.5 KiB
Fish
68 lines
1.5 KiB
Fish
# vim: set ts=4 sw=4 tw=100 et:
|
|
# Utilities for the test runners
|
|
|
|
function die
|
|
set -q argv[1]; and echo $argv[1] >&2
|
|
exit 1
|
|
end
|
|
|
|
# $suppress_color is set by `test_driver.sh` (via import of exported variables)
|
|
function say -V suppress_color
|
|
set -l color_flags
|
|
set -l suppress_newline
|
|
while set -q argv[1]
|
|
switch $argv[1]
|
|
case -b -o -u
|
|
set color_flags $color_flags $argv[1]
|
|
case -n
|
|
set suppress_newline 1
|
|
case --
|
|
set -e argv[1]
|
|
break
|
|
case -\*
|
|
continue
|
|
case \*
|
|
break
|
|
end
|
|
set -e argv[1]
|
|
end
|
|
|
|
if not set -q argv[2]
|
|
echo 'usage: say [flags] color string [string...]' >&2
|
|
return 1
|
|
end
|
|
|
|
if begin
|
|
test -n "$suppress_color"; or set_color $color_flags $argv[1]
|
|
end
|
|
printf '%s' $argv[2..-1]
|
|
test -z "$suppress_color"; and set_color normal
|
|
if test -z "$suppress_newline"
|
|
echo
|
|
end
|
|
end
|
|
end
|
|
|
|
# lame timer
|
|
for program in {g,}date
|
|
if command -q $program && $program --version 1>/dev/null 2>/dev/null
|
|
set -g milli $program
|
|
set -g unit ms
|
|
break
|
|
else
|
|
set -g unit sec
|
|
end
|
|
end
|
|
|
|
function timestamp
|
|
set -q milli[1]
|
|
and $milli +%s%3N
|
|
or date +%s
|
|
end
|
|
|
|
function delta
|
|
set -q milli[1]
|
|
and math "( "($milli +%s%3N)" - $argv[1])"
|
|
or math (date +%s) - $argv[1]
|
|
end
|