test: Add a new --quiet flag to suppress output

The --quiet flag is useful when only the exit status matters.

Fix the documentation for the -t flag to no longer claim that `type` can
print "keyword", as it never does that.

Stop printing a blank line for functions/builtins when the -p flag has
been passed. It's just not useful.
This commit is contained in:
Kevin Ballard 2014-07-10 00:18:50 -07:00
parent 6b062b07b4
commit 6f7a7459c1
2 changed files with 15 additions and 12 deletions

View File

@ -12,9 +12,10 @@ The following options are available:
- \c -h or \c --help prints help and then exits.
- \c -a or \c --all prints all of possible definitions of the specified names.
- \c -f or \c --no-functions suppresses function and builtin lookup.
- \c -t or \c --type prints <tt>keyword</tt>, <tt>function</tt>, <tt>builtin</tt>, or <tt>file</tt> if \c NAME is a shell reserved word, function, builtin, or disk file, respectively.
- \c -t or \c --type prints <tt>function</tt>, <tt>builtin</tt>, or <tt>file</tt> if \c NAME is a shell function, builtin, or disk file, respectively.
- \c -p or \c --path returns the name of the disk file that would be executed, or nothing if 'type -t name' would not return 'file'.
- \c -P or \c --force-path returns the name of the disk file that would be executed, or nothing if no file with the specified name could be found in the <tt>$PATH</tt>.
- \c -q or \c --quiet suppresses all output; this is useful when testing the exit status.
\c type sets the exit status to 0 if the specified command was found,
and 1 if it could not be found.

View File

@ -13,13 +13,19 @@ function type --description "Print the type of a command"
for i in (seq (count $argv))
switch $argv[$i]
case -t --type
if test $mode != quiet
set mode type
end
case -p --path
if test $mode != quiet
set mode path
end
case -P --force-path
if test $mode != quiet
set mode path
end
set selection files
case -a --all
@ -28,6 +34,9 @@ function type --description "Print the type of a command"
case -f --no-functions
set selection files
case -q --quiet
set mode quiet
case -h --help
__fish_print_help type
return 0
@ -61,10 +70,6 @@ function type --description "Print the type of a command"
case type
echo (_ 'function')
case path
echo
end
if test $multi != yes
continue
@ -81,9 +86,6 @@ function type --description "Print the type of a command"
case type
echo (_ 'builtin')
case path
echo
end
if test $multi != yes
continue
@ -116,7 +118,7 @@ function type --description "Print the type of a command"
end
end
if test $found = 0
if begin; test $found = 0; and test $mode != quiet; end
printf (_ "%s: Could not find '%s'\n") type $i >&2
end