* [Tarantool-patches] [PATCH v3] rocks: forward options to luarocks
@ 2020-04-13 12:54 Leonid Vasiliev
2020-04-13 13:06 ` lvasiliev
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Leonid Vasiliev @ 2020-04-13 12:54 UTC (permalink / raw)
To: v.shpilevoy, yaroslav.dynnikov; +Cc: tarantool-patches
From: Leonid <lvasiliev@tarantool.org>
The policy for check of luarocks flags has been changed
(moved from tarantoolctl to luarocks).
Chdir has been moved to luarocks.
Closes #4629
@TarantoolBot document
Title: Update tarantoolctl rocks
tarantoolctl rocks commands has been added:
build
config
download
init
lint
new_version
purge
which
write_rockspec
https://github.com/luarocks/luarocks/wiki/luarocks
---
| 180 ++++++++++-----------------------------------
third_party/luarocks | 2 +-
2 files changed, 39 insertions(+), 143 deletions(-)
--git a/extra/dist/tarantoolctl.in b/extra/dist/tarantoolctl.in
index f5a912c..a98c61b 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,50 +935,42 @@ 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)
-
- if positional_arguments[1] == "search" and keyword_arguments["all"] then
- table.insert(positional_arguments, "--all")
- end
-
- if positional_arguments[1] == "remove" and keyword_arguments["force"] then
- table.insert(positional_arguments, "--force")
- end
-
-- Tweak help messages
util.see_help = function(command, program)
-- TODO: print extended help message here
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)
@@ -1194,117 +1185,20 @@ 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 [OPTIONS] COMMAND",
description =
[=[
- Package management.
+ Tarantool package manager. To pack/unpack/install/remove
+ LuaRocks packages, and many more other actions. For more
+ information 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.
-]=],
- }
- },
- }
+ -- LuaRocks parse arguments themselves
+ is_self_sufficient = true
}
}, {
__index = function()
@@ -1404,12 +1298,7 @@ local function populate_arguments()
{ 'help', 'boolean' },
{ 'format', 'string' },
{ 'replica', 'number+' },
- { 'chdir', 'string' },
- { 'only-server', 'string' },
- { 'server', 'string' },
{ 'language', 'string' },
- { 'all', 'boolean' },
- { 'force', 'boolean' },
})
local cmd_name
@@ -1421,8 +1310,15 @@ local function populate_arguments()
end
local function main()
- populate_arguments()
+
local cmd_pair = commands[command_name]
+
+ -- Don't call populate arguments() for modules
+ -- that parse arguments themselves.
+ if not cmd_pair.is_self_sufficient then
+ populate_arguments()
+ end
+
if #arg < 2 then
log.error("Not enough arguments for '%s' command\n", command_name)
usage(command_name)
diff --git a/third_party/luarocks b/third_party/luarocks
index 06a657e..8e8db7f 160000
--- a/third_party/luarocks
+++ b/third_party/luarocks
@@ -1 +1 @@
-Subproject commit 06a657e7a68dd475e2afb5a56012c43f3a906640
+Subproject commit 8e8db7f255a855c585245c288414ceb097576e07
--
2.7.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Tarantool-patches] [PATCH v3] rocks: forward options to luarocks
2020-04-13 12:54 [Tarantool-patches] [PATCH v3] rocks: forward options to luarocks Leonid Vasiliev
@ 2020-04-13 13:06 ` lvasiliev
2020-04-13 14:58 ` [Tarantool-patches] [PATCH v4] " Vladislav Shpilevoy
2020-04-14 7:48 ` [Tarantool-patches] [PATCH v3] " Kirill Yukhin
2 siblings, 0 replies; 4+ messages in thread
From: lvasiliev @ 2020-04-13 13:06 UTC (permalink / raw)
To: v.shpilevoy, yaroslav.dynnikov; +Cc: tarantool-patches
Sorry, See PATCH V4
On 13.04.2020 15:54, Leonid Vasiliev wrote:
> From: Leonid <lvasiliev@tarantool.org>
>
> The policy for check of luarocks flags has been changed
> (moved from tarantoolctl to luarocks).
> Chdir has been moved to luarocks.
>
> Closes #4629
>
> @TarantoolBot document
> Title: Update tarantoolctl rocks
> tarantoolctl rocks commands has been added:
> build
> config
> download
> init
> lint
> new_version
> purge
> which
> write_rockspec
>
> https://github.com/luarocks/luarocks/wiki/luarocks
> ---
> extra/dist/tarantoolctl.in | 180 ++++++++++-----------------------------------
> third_party/luarocks | 2 +-
> 2 files changed, 39 insertions(+), 143 deletions(-)
>
> diff --git a/extra/dist/tarantoolctl.in b/extra/dist/tarantoolctl.in
> index f5a912c..a98c61b 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,50 +935,42 @@ 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)
> -
> - if positional_arguments[1] == "search" and keyword_arguments["all"] then
> - table.insert(positional_arguments, "--all")
> - end
> -
> - if positional_arguments[1] == "remove" and keyword_arguments["force"] then
> - table.insert(positional_arguments, "--force")
> - end
> -
> -- Tweak help messages
> util.see_help = function(command, program)
> -- TODO: print extended help message here
> 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)
> @@ -1194,117 +1185,20 @@ 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 [OPTIONS] COMMAND",
> description =
> [=[
> - Package management.
> + Tarantool package manager. To pack/unpack/install/remove
> + LuaRocks packages, and many more other actions. For more
> + information 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.
> -]=],
> - }
> - },
> - }
> + -- LuaRocks parse arguments themselves
> + is_self_sufficient = true
> }
> }, {
> __index = function()
> @@ -1404,12 +1298,7 @@ local function populate_arguments()
> { 'help', 'boolean' },
> { 'format', 'string' },
> { 'replica', 'number+' },
> - { 'chdir', 'string' },
> - { 'only-server', 'string' },
> - { 'server', 'string' },
> { 'language', 'string' },
> - { 'all', 'boolean' },
> - { 'force', 'boolean' },
> })
>
> local cmd_name
> @@ -1421,8 +1310,15 @@ local function populate_arguments()
> end
>
> local function main()
> - populate_arguments()
> +
> local cmd_pair = commands[command_name]
> +
> + -- Don't call populate arguments() for modules
> + -- that parse arguments themselves.
> + if not cmd_pair.is_self_sufficient then
> + populate_arguments()
> + end
> +
> if #arg < 2 then
> log.error("Not enough arguments for '%s' command\n", command_name)
> usage(command_name)
> diff --git a/third_party/luarocks b/third_party/luarocks
> index 06a657e..8e8db7f 160000
> --- a/third_party/luarocks
> +++ b/third_party/luarocks
> @@ -1 +1 @@
> -Subproject commit 06a657e7a68dd475e2afb5a56012c43f3a906640
> +Subproject commit 8e8db7f255a855c585245c288414ceb097576e07
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Tarantool-patches] [PATCH v4] rocks: forward options to luarocks
2020-04-13 12:54 [Tarantool-patches] [PATCH v3] rocks: forward options to luarocks Leonid Vasiliev
2020-04-13 13:06 ` lvasiliev
@ 2020-04-13 14:58 ` Vladislav Shpilevoy
2020-04-14 7:48 ` [Tarantool-patches] [PATCH v3] " Kirill Yukhin
2 siblings, 0 replies; 4+ messages in thread
From: Vladislav Shpilevoy @ 2020-04-13 14:58 UTC (permalink / raw)
To: Leonid Vasiliev, yaroslav.dynnikov; +Cc: tarantool-patches
Hi! Thanks for the patch!
LGTM.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Tarantool-patches] [PATCH v3] rocks: forward options to luarocks
2020-04-13 12:54 [Tarantool-patches] [PATCH v3] rocks: forward options to luarocks Leonid Vasiliev
2020-04-13 13:06 ` lvasiliev
2020-04-13 14:58 ` [Tarantool-patches] [PATCH v4] " Vladislav Shpilevoy
@ 2020-04-14 7:48 ` Kirill Yukhin
2 siblings, 0 replies; 4+ messages in thread
From: Kirill Yukhin @ 2020-04-14 7:48 UTC (permalink / raw)
To: Leonid Vasiliev; +Cc: yaroslav.dynnikov, tarantool-patches, v.shpilevoy
Hello,
On 13 Apr 15:54, Leonid Vasiliev wrote:
> From: Leonid <lvasiliev@tarantool.org>
>
> The policy for check of luarocks flags has been changed
> (moved from tarantoolctl to luarocks).
> Chdir has been moved to luarocks.
>
> Closes #4629
I've checked your parch into master.
--
Regards, Kirill Yukhin
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-04-14 7:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-13 12:54 [Tarantool-patches] [PATCH v3] rocks: forward options to luarocks Leonid Vasiliev
2020-04-13 13:06 ` lvasiliev
2020-04-13 14:58 ` [Tarantool-patches] [PATCH v4] " Vladislav Shpilevoy
2020-04-14 7:48 ` [Tarantool-patches] [PATCH v3] " Kirill Yukhin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox