From 5cf2a5026926dac29d012fef0bb3554b2e3792a3 Mon Sep 17 00:00:00 2001 From: Kurtis Rader Date: Sun, 9 Jul 2017 16:12:13 -0700 Subject: [PATCH] convert `isatty` to use `argparse` --- share/functions/isatty.fish | 41 +++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/share/functions/isatty.fish b/share/functions/isatty.fish index 02282928a..f1f87a21c 100644 --- a/share/functions/isatty.fish +++ b/share/functions/isatty.fish @@ -1,30 +1,31 @@ - function isatty -d "Tests if a file descriptor is a tty" - set -l fd 0 - if count $argv >/dev/null - switch $argv[1] + set -l options 'h/help' + argparse $options -- $argv + or return - case -h --h --he --hel --help - __fish_print_help isatty - return 0 + if set -q _flag_help + __fish_print_help isatty + return 0 + end - case stdin '' - set fd 0 + if set -q argv[2] + printf (_ "%s: Too many arguments") isatty >&2 + return 1 + end - case stdout - set fd 1 - - case stderr - set fd 2 - - case '*' - set fd $argv[1] - - end + 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] end # Use `command test` because `builtin test` doesn't open the regular fd's. # See https://github.com/fish-shell/fish-shell/issues/1228 command test -t "$fd" - end