[Tarantool-patches] [PATCH v2 2/2] luarocks: Add a kludge for option force of luarocks remove

lvasiliev lvasiliev at tarantool.org
Wed Apr 1 13:02:06 MSK 2020


Hi, thanks for the review. You're darn right!

diff --git a/extra/dist/tarantoolctl.in b/extra/dist/tarantoolctl.in
index b26dd10..f84c702 100755
--- a/extra/dist/tarantoolctl.in
+++ b/extra/dist/tarantoolctl.in
@@ -949,7 +949,7 @@ local function rocks()
          table.insert(positional_arguments, "--all")
      end

-    if positional_arguments[1] == "remove" and find_arg("force") then
+    if positional_arguments[1] == "remove" and 
keyword_arguments["force"] then
          table.insert(positional_arguments, "--force")
      end

On 01.04.2020 2:21, Igor Munkin wrote:
> Leonid,
> 
> Thanks for the patch! Please consider the comment below.
> 
> On 16.03.20, Leonid Vasiliev wrote:
>> From: Leonid <lvasiliev at tarantool.org>
>>
>> Fixed the tarantoolctl rocks remove flag --force
>>
>> Forwarding of the --force flag to tarantoolctl rocks module was added.
>> (Command: tarantoolctl rocks remove --force)
>>
>> Fixes: #3632
>> ---
>>   extra/dist/tarantoolctl.in | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/extra/dist/tarantoolctl.in b/extra/dist/tarantoolctl.in
>> index 372838edd..c6c3ecb8f 100755
>> --- a/extra/dist/tarantoolctl.in
>> +++ b/extra/dist/tarantoolctl.in
>> @@ -950,6 +950,10 @@ local function rocks()
>>           table.insert(positional_arguments, "--all")
>>       end
>>   
>> +    if positional_arguments[1] == "remove" and find_arg("force") then
> 
> This is a bad check. Consider the following example (I patched the
> tarantoolctl.in a little for it):
> | $ export LUA_PATH="$LUA_PATH;third_party/luarocks/src/?.lua;;"
> | $ ./extra/dist/tarantoolctl rocks install try/force-scm-1.rockspec
> | <snipped>
> | force scm-1 is now installed in /home/imun/.luarocks
> | $ git diff
> | diff --git a/extra/dist/tarantoolctl.in b/extra/dist/tarantoolctl.in
> | index 2b95e2957..2378dee2b 100755
> | --- a/extra/dist/tarantoolctl.in
> | +++ b/extra/dist/tarantoolctl.in
> | @@ -950,6 +950,7 @@ local function rocks()
> |      end
> |
> |      if positional_arguments[1] == "remove" and find_arg("force") then
> | +        print('WARN: --force option is set for remove')
> |          table.insert(positional_arguments, "--force")
> |      end
> |
> | $ ./extra/dist/tarantoolctl rocks remove force
> | WARN: --force option is set for remove
> | Checking stability of dependencies in the absence of
> | force scm-1...
> |
> | Removing force scm-1...
> | Removal successful.
> 
> You need to check whether 'force' key exists in keyword_arguments, not
> to search 'force' substring in arg tables values.
> 
>> +        table.insert(positional_arguments, "--force")
>> +    end
>> +
>>       -- Tweak help messages
>>       util.see_help = function(command, program)
>>           -- TODO: print extended help message here
> 
> <snipped>
> 
>> -- 
>> 2.17.1
>>
> 


More information about the Tarantool-patches mailing list