Tarantool development patches archive
 help / color / mirror / Atom feed
From: Leonid Vasiliev <lvasiliev@tarantool.org>
To: v.shpilevoy@tarantool.org
Cc: tarantool-patches@dev.tarantool.org
Subject: [Tarantool-patches] [PATCH v2] rocks: forward options to luarocks
Date: Sun,  5 Apr 2020 17:49:45 +0300	[thread overview]
Message-ID: <2d94d49b51bd326d79a032cdfe0307480b2f5475.1586097801.git.lvasiliev@tarantool.org> (raw)

From: Leonid <lvasiliev@tarantool.org>

The policy for check of luarocks flags has been changed (moved from tarantoolctl to luarocks).
We had a white-list of luarocks options in tarantoolctl before.
Now we have a black-list of options (for tarantool) in luarocks.
Help section has been updated.
Chdir has been moved to luarocks.

@TarantoolBot document
Title: Update tarantoolctl rocks
tarantoolctl rocks commands has been added:
build
config
download
init
lint
new_version
purge
which
write_rockspec

Closes #4629
---
https://github.com/tarantool/tarantool/issues/4629
https://github.com/tarantool/tarantool/tree/lvasiliev/gh-4629-forward-flags

Corresponding with https://github.com/tarantool/luarocks/tree/lvasiliev/gh-4629-add-chdir-to-make

@Changelog
Add tarantoolctl rocks commands: build config download init lint new_version purge which write_rockspec. Fix forwarding flags to luarocks. Help section has been updated.(gh-4629)

 extra/dist/tarantoolctl.in | 159 ++++++++-------------------------------------
 third_party/luarocks       |   2 +-
 2 files changed, 29 insertions(+), 132 deletions(-)

diff --git a/extra/dist/tarantoolctl.in b/extra/dist/tarantoolctl.in
index 6daf866..b34f655 100755
--- a/extra/dist/tarantoolctl.in
+++ b/extra/dist/tarantoolctl.in
@@ -21,7 +21,6 @@ ffi.cdef[[
 int kill(int pid, int sig);
 int isatty(int fd);
 int getppid(void);
-int chdir(const char *path);
 ]]
 
 local TIMEOUT_INFINITY = 100 * 365 * 86400
@@ -936,14 +935,6 @@ local function rocks()
     cfg.init()
     local util = require("luarocks.util")
     local command_line = require("luarocks.cmd")
-    local options = keyword_arguments
-    local key = nil
-    if options["only-server"] ~= nil then
-        key = find_arg("only%-server")
-    else
-        key = find_arg("server")
-    end
-    table.insert(positional_arguments, key)
 
     -- Tweak help messages
     util.see_help = function(command, program)
@@ -951,27 +942,36 @@ local function rocks()
         return "See Tarantool documentation for help."
     end
 
-    -- Enable only useful commands
+    -- Disabled: path, upload
     local rocks_commands = {
+        build = "luarocks.cmd.build",
+        config = "luarocks.cmd.config",
+        doc = "luarocks.cmd.doc",
+        download = "luarocks.cmd.download",
+        help = "luarocks.cmd.help",
+        init = "luarocks.cmd.init",
         install = "luarocks.cmd.install",
-        search = "luarocks.cmd.search",
+        lint = "luarocks.cmd.lint",
         list = "luarocks.cmd.list",
-        remove = "luarocks.cmd.remove",
-        show = "luarocks.cmd.show",
         make = "luarocks.cmd.make",
+        make_manifest = "luarocks.admin.cmd.make_manifest",
+        new_version = "luarocks.cmd.new_version",
         pack = "luarocks.cmd.pack",
-        unpack = "luarocks.cmd.unpack",
-        doc = "luarocks.cmd.doc",
-        help = "luarocks.cmd.help",
+        purge = "luarocks.cmd.purge",
+        remove = "luarocks.cmd.remove",
+        search = "luarocks.cmd.search",
+        show = "luarocks.cmd.show",
         test = "luarocks.cmd.test",
-        make_manifest = "luarocks.admin.cmd.make_manifest",
+        unpack = "luarocks.cmd.unpack",
+        which = "luarocks.cmd.which",
+        write_rockspec = "luarocks.cmd.write_rockspec",
     }
 
-    if keyword_arguments.chdir then
-        ffi.C.chdir(keyword_arguments.chdir)
-    end
-    -- Call LuaRocks
-    command_line.run_command('', rocks_commands, nil, unpack(positional_arguments))
+    -- Prepare arguments for luarocks.
+    shift_argv(lua_arguments, 0, 1)
+    -- Call LuaRocks.
+    command_line.run_command('LuaRocks main command-line interface',
+        rocks_commands, nil, unpack(lua_arguments))
 end
 
 local function exit_wrapper(func)
@@ -1186,117 +1186,14 @@ local commands = setmetatable({
     }, rocks = {
         func = exit_wrapper(rocks), process = process_remote, help = {
             header =
-                "%s rocks [install|make|remove|show|search|list|pack|unpack|doc|test|make_manifest|help]",
+                "%s rocks - package management",
             description =
 [=[
-        Package management.
+        See tarantoolctl rocks help
 ]=],
             weight = 100,
             deprecated = false,
         },
-        subcommands = {
-            install = {
-                weight = 100,
-                help = {
-                    header = "%s rocks install {<rock>|<name> [<version>]}",
-                    description = [=[
-        Install a rock.
-]=],
-                }
-            },
-            make = {
-                weight = 101,
-                help = {
-                    header = "%s rocks make [<rockspec>]",
-                    description = [=[
-        Compile package in current directory using a rockspec.
-]=],
-                }
-            },
-            remove = {
-                weight = 101,
-                help = {
-                    header = "%s rocks remove <name> [<version>]",
-                    description = [=[
-        Uninstall a rock.
-]=],
-                }
-            },
-            show = {
-                weight = 110,
-                help = {
-                    header = "%s rocks list <filter>",
-                    description = [=[
-        Show information about an installed rock
-]=],
-                }
-            },
-            search = {
-                weight = 120,
-                help = {
-                    header = "%s rocks search <name> [<version>]",
-                    description = [=[
-        Search the rocks list for a pattern.
-]=],
-                }
-            },
-            list = {
-                weight = 121,
-                help = {
-                    header = "%s rocks list <filter>",
-                    description = [=[
-        List all installed rocks.
-]=],
-                }
-            },
-            pack = {
-                weight = 131,
-                help = {
-                    header = "%s rocks pack {<rockspec>|<name> [<version>]}",
-                    description = [=[
-        Create a rock, packing sources or binaries.
-]=],
-                }
-            },
-            unpack = {
-                weight = 131,
-                help = {
-                    header = "%s rocks unpack {<rock>|<name> [<version>]}",
-                    description = [=[
-        Unpack the contents of a rock.
-]=],
-                }
-            },
-            test = {
-                weight = 141,
-                help = {
-                    header = "%s rocks test [<rockspec>]",
-                    description = [=[
-        Run the test suite in the current directory.
-]=],
-                }
-            },
-            doc = {
-                weight = 151,
-                help = {
-                    header = "%s rocks doc <rockname>",
-                    description = [=[
-        Show documentation for an installed rock.
-]=],
-                }
-            },
-            make_manifest = {
-                weight = 161,
-                help = {
-                    header = "%s rocks make_manifest <argument>",
-                    description = [=[
-        Compile a manifest file for a repository.
-
-        <argument>, if given, is a local repository pathname.
-]=],
-                }
-            },
-        }
     }
 }, {
     __index = function()
@@ -1396,9 +1293,6 @@ local function populate_arguments()
         { 'help',        'boolean' },
         { 'format',      'string'  },
         { 'replica',     'number+' },
-        { 'chdir',       'string'  },
-        { 'only-server', 'string'  },
-        { 'server',      'string'  },
         { 'language',    'string'  },
     })
 
@@ -1411,7 +1305,10 @@ local function populate_arguments()
 end
 
 local function main()
-    populate_arguments()
+    if command_name ~= 'rocks' then -- rocks parse arguments themselves
+        populate_arguments()
+    end
+
     local cmd_pair = commands[command_name]
     if #arg < 2 then
         log.error("Not enough arguments for '%s' command\n", command_name)
diff --git a/third_party/luarocks b/third_party/luarocks
index 06a657e..b778617 160000
--- a/third_party/luarocks
+++ b/third_party/luarocks
@@ -1 +1 @@
-Subproject commit 06a657e7a68dd475e2afb5a56012c43f3a906640
+Subproject commit b778617bfd07e4b8a34a20db113fb2a413d96e91
-- 
2.7.4

             reply	other threads:[~2020-04-05 14:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-05 14:49 Leonid Vasiliev [this message]
2020-04-09  6:55 ` lvasiliev
2020-04-10  0:00 ` Vladislav Shpilevoy
2020-04-10  9:10   ` lvasiliev
2020-04-11 14:11     ` Vladislav Shpilevoy
2020-04-12 17:12       ` lvasiliev
2020-04-13 12:03         ` lvasiliev
2020-04-12 20:15 ` Vladislav Shpilevoy
  -- strict thread matches above, loose matches on Subject: below --
2019-11-19  8:56 Leonid

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2d94d49b51bd326d79a032cdfe0307480b2f5475.1586097801.git.lvasiliev@tarantool.org \
    --to=lvasiliev@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=v.shpilevoy@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v2] rocks: forward options to luarocks' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox