bash completion: Redirect 'guix' stderr to /dev/null.

This avoids spurious messages when pressing TAB.

* etc/completion/bash/guix (_guix_complete_available_package)
(_guix_complete_installed_package, _guix_complete_option)
(_guix_complete): Redirect stderr to /dev/null when running 'guix'.
This commit is contained in:
Ludovic Courtès 2016-09-07 16:22:25 +02:00
parent 96dbc93089
commit e9006d06a0
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU # GNU Guix --- Functional package management for GNU
# Copyright © 2015 Ludovic Courtès <ludo@gnu.org> # Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@ -27,7 +27,8 @@ _guix_complete_available_package ()
then then
# Cache the complete list because it rarely changes and makes # Cache the complete list because it rarely changes and makes
# completion much faster. # completion much faster.
_guix_available_packages="$(${COMP_WORDS[0]} package -A | cut -f1)" _guix_available_packages="$(${COMP_WORDS[0]} package -A 2> /dev/null \
| cut -f1)"
fi fi
COMPREPLY=($(compgen -W "$_guix_available_packages" -- "$prefix")) COMPREPLY=($(compgen -W "$_guix_available_packages" -- "$prefix"))
} }
@ -37,15 +38,16 @@ _guix_complete_installed_package ()
# Here we do not cache the list of installed packages because that # Here we do not cache the list of installed packages because that
# may change over time and the list is relatively small anyway. # may change over time and the list is relatively small anyway.
local prefix="$1" local prefix="$1"
local packages="$(${COMP_WORDS[0]} package -I "^$prefix" | cut -f1)" local packages="$(${COMP_WORDS[0]} package -I "^$prefix" 2> /dev/null \
| cut -f1)"
COMPREPLY=($(compgen -W "$packages" -- "$prefix")) COMPREPLY=($(compgen -W "$packages" -- "$prefix"))
} }
_guix_complete_option () _guix_complete_option ()
{ {
local options="$(${COMP_WORDS[0]} ${COMP_WORDS[1]} --help \ local options="$(${COMP_WORDS[0]} ${COMP_WORDS[1]} --help 2> /dev/null \
| grep '^ \+-' \ | grep '^ \+-' \
| sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g' )" | sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g')"
compopt -o nospace compopt -o nospace
COMPREPLY=($(compgen -W "$options" -- "${COMP_WORDS[$word_count - 1]}")) COMPREPLY=($(compgen -W "$options" -- "${COMP_WORDS[$word_count - 1]}"))
} }
@ -119,7 +121,8 @@ _guix_complete ()
if [ -z "$_guix_subcommands" ] if [ -z "$_guix_subcommands" ]
then then
# Cache the list of subcommands to speed things up. # Cache the list of subcommands to speed things up.
_guix_subcommands="$(guix --help | grep '^ ' | cut -c 2-)" _guix_subcommands="$(guix --help 2> /dev/null \
| grep '^ ' | cut -c 2-)"
fi fi
COMPREPLY=($(compgen -W "$_guix_subcommands" -- "$word_at_point")) COMPREPLY=($(compgen -W "$_guix_subcommands" -- "$word_at_point"))
;; ;;