Subject: Re: [bug#30495] [PATCH] bash completion: Complete files names after 'guix package -m'.

From: Marius Bakke <[email-masked]>
Date: Sat, 17 Feb 2018 16:45:42 +0100

Oleg Pykhalov <[email-masked]> writes:

> * etc/completion/bash/guix (_guix_is_dash_L): Replace with
> ‘_guix_is_dash_L_or_m’.
> (_guix_complete): Add this.

[...]

> diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
> index 6b84193db..286c4f1c5 100644
> --- a/etc/completion/bash/guix
> +++ b/etc/completion/bash/guix
> @@ -97,9 +97,10 @@ _guix_is_removing ()
>      $result
>  }
>  
> -_guix_is_dash_L ()
> +_guix_is_dash_L_or_m ()
>  {
> -    [ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-L" ] \
> +    comp_words_minus_1="${COMP_WORDS[$COMP_CWORD - 1]}"
> +    [ "$comp_words_minus_1" = "-L" ] || [ "$comp_words_minus_1" = "-m" ] \
>  	|| { case "${COMP_WORDS[$COMP_CWORD]}" in
>  		 --load-path=*) true;;
>  		 *)             false;;

I think this fails to account for the long form "--manifest".  Perhaps
it's better to add a new "_guix_is_dash_m" and use

"if _guix_is_dash_L || _guix_is_dash_m"

below.  WDYT?

> @@ -149,7 +150,7 @@ _guix_complete ()
>  	*)
>  	    if _guix_is_command "package"
>  	    then
> -		if _guix_is_dash_L
> +		if _guix_is_dash_L_or_m
>  		then
>  		    _guix_complete_file
>  		elif _guix_is_removing
> -- 
> 2.16.1