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

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 17 Feb 2018 19:26:02 +0000

Your bug report

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

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
30495: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30495
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#30495] [PATCH] bash completion: Complete files names after 'guix package -m'.
From: Oleg Pykhalov <[email-masked]>
To: Marius Bakke <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sat, 17 Feb 2018 22:25:11 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Marius Bakke <[email-masked]> writes:

> Oleg Pykhalov <[email-masked]> writes:
>
>> Marius Bakke <[email-masked]> writes:
>>
>>> 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?
>>
>> Nice catch!  Thanks.
>>
>> But I don't know how to implement a file completion for ‘--manifest=’.
>> ‘--load-path=’ doesn't have a file completion too.  Only completion for
>> equal sign before.
>
> Oh, OK.  That's another issue I guess.  The patch below LGTM, but the
> commit message needs adjusting ;-)

Ouch, thank you for reminding.

Pushed as f5f916792c7069a22d95c5b7c68bcf3bbb86e451

I'll close the bug report.

Thanks,
Oleg.

Subject: [PATCH] bash completion: Complete files names after 'guix package -m'.
From: Oleg Pykhalov <[email-masked]>
To: [email-masked]
Cc: Oleg Pykhalov <[email-masked]>
Date: Sat, 17 Feb 2018 12:07:38 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

* etc/completion/bash/guix (_guix_is_dash_L): Replace with
‘_guix_is_dash_L_or_m’.
(_guix_complete): Add this.
---
 etc/completion/bash/guix | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

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;;
@@ -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