2015-02-01 17:11:44 +08:00
|
|
|
function isatty -d "Tests if a file descriptor is a tty"
|
2020-03-10 02:36:12 +08:00
|
|
|
set -l options h/help
|
2017-07-10 07:55:16 +08:00
|
|
|
argparse -n isatty $options -- $argv
|
2017-07-10 07:12:13 +08:00
|
|
|
or return
|
2006-09-20 00:53:17 +08:00
|
|
|
|
2017-07-10 07:12:13 +08:00
|
|
|
if set -q _flag_help
|
|
|
|
__fish_print_help isatty
|
|
|
|
return 0
|
|
|
|
end
|
2006-09-20 00:53:17 +08:00
|
|
|
|
2017-07-10 07:12:13 +08:00
|
|
|
if set -q argv[2]
|
|
|
|
printf (_ "%s: Too many arguments") isatty >&2
|
|
|
|
return 1
|
|
|
|
end
|
2010-09-18 10:18:26 +08:00
|
|
|
|
2017-07-10 07:12:13 +08:00
|
|
|
set -l fd
|
|
|
|
switch "$argv"
|
|
|
|
case stdin ''
|
|
|
|
set fd 0
|
|
|
|
case stdout
|
|
|
|
set fd 1
|
|
|
|
case stderr
|
|
|
|
set fd 2
|
|
|
|
case '*'
|
|
|
|
set fd $argv[1]
|
2016-11-28 13:27:22 +08:00
|
|
|
end
|
2015-02-01 17:11:44 +08:00
|
|
|
|
2016-11-28 13:27:22 +08:00
|
|
|
# Use `command test` because `builtin test` doesn't open the regular fd's.
|
|
|
|
# See https://github.com/fish-shell/fish-shell/issues/1228
|
2019-02-17 09:14:15 +08:00
|
|
|
# Too often `command test` is some bogus Go binary, I don't know why. Use [ because
|
|
|
|
# it's less likely to be something surprising. See #5665
|
|
|
|
command [ -t "$fd" ]
|
2006-09-20 00:53:17 +08:00
|
|
|
end
|