From: Leonid <lvasiliev@tarantool.org> To: alexander.turenko@tarantool.org Cc: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH LUAROCKS 1/2] Add the chdir option for make Date: Mon, 18 Nov 2019 20:56:13 +0300 [thread overview] Message-ID: <adcbcb7592f0c205ef5b9a6aec75be99441ea37c.1574098671.git.lvasiliev@tarantool.org> (raw) In-Reply-To: <cover.1574098671.git.lvasiliev@tarantool.org> In-Reply-To: <cover.1574098671.git.lvasiliev@tarantool.org> --- src/luarocks/cmd/make.lua | 22 ++++++++++++++++------ src/luarocks/util.lua | 11 ++++++----- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/luarocks/cmd/make.lua b/src/luarocks/cmd/make.lua index 4d81386..15c534e 100644 --- a/src/luarocks/cmd/make.lua +++ b/src/luarocks/cmd/make.lua @@ -1,7 +1,7 @@ --- Module implementing the LuaRocks "make" command. -- Builds sources in the current directory, but unlike "build", --- it does not fetch sources, etc., assuming everything is +-- it does not fetch sources, etc., assuming everything is -- available in the current directory. local make = {} @@ -20,7 +20,7 @@ make.help_summary = "Compile package in current directory using a rockspec." make.help_arguments = "[--pack-binary-rock] [<rockspec>]" make.help = [[ Builds sources in the current directory, but unlike "build", -it does not fetch sources, etc., assuming everything is +it does not fetch sources, etc., assuming everything is available in the current directory. If no argument is given, it looks for a rockspec in the current directory and in "rockspec/" and "rockspecs/" subdirectories, picking the rockspec with newest version @@ -28,7 +28,7 @@ or without version name. If rockspecs for different rocks are found or there are several rockspecs without version, you must specify which to use, through the command-line. -This command is useful as a tool for debugging rockspecs. +This command is useful as a tool for debugging rockspecs. To install rocks, you'll normally want to use the "install" and "build" commands. See the help on those for details. @@ -45,7 +45,7 @@ only dependencies of the rockspec (see `luarocks help install`). in the configuration file. --branch=<name> Override the `source.branch` field in the loaded - rockspec. Allows to specify a different branch to + rockspec. Allows to specify a different branch to fetch. Particularly for "dev" rocks. --verify Verify signature of the rockspec or src.rock being @@ -59,6 +59,8 @@ only dependencies of the rockspec (see `luarocks help install`). --sign To be used with --pack-binary-rock. Also produce a signature file for the generated .rock file. +--chdir=<path> Specify a source directory of the rock. + ]] --- Driver function for "make" command. @@ -67,7 +69,7 @@ only dependencies of the rockspec (see `luarocks help install`). -- error message otherwise. exitcode is optionally returned. function make.command(flags, rockspec_filename) assert(type(rockspec_filename) == "string" or not rockspec_filename) - + if not rockspec_filename then local err rockspec_filename, err = util.get_default_rockspec() @@ -78,7 +80,7 @@ function make.command(flags, rockspec_filename) if not rockspec_filename:match("rockspec$") then return nil, "Invalid argument: 'make' takes a rockspec as a parameter. "..util.see_help("make") end - + local rockspec, err, errcode = fetch.load_rockspec(rockspec_filename) if not rockspec then return nil, err @@ -96,6 +98,14 @@ function make.command(flags, rockspec_filename) verify = not not flags["verify"], }) + if flags["chdir"] then + local ok + ok, err = fs.change_dir(flags["chdir"]) + if not ok then + return nil, err + end + end + if flags["sign"] and not flags["pack-binary-rock"] then return nil, "In the make command, --sign is meant to be used only with --pack-binary-rock" end diff --git a/src/luarocks/util.lua b/src/luarocks/util.lua index abf6d90..fadc93f 100644 --- a/src/luarocks/util.lua +++ b/src/luarocks/util.lua @@ -33,7 +33,7 @@ local debug = require("debug") -- which can be used to remove the item later from the list. function util.schedule_function(f, ...) assert(type(f) == "function") - + local item = { fn = f, args = {...} } table.insert(scheduled_functions, item) return item @@ -92,6 +92,7 @@ local supported_flags = { ["binary"] = true, ["branch"] = "<branch-name>", ["build-deps"] = true, + ["chdir"] = "<path>", ["debug"] = true, ["deps"] = true, ["deps-mode"] = "<mode>", @@ -276,12 +277,12 @@ end -- exists in vars. Only string values are processed; this function -- does not scan subtables recursively. -- @param tbl table: Table to have its string values modified. --- @param vars table: Table containing string-string key-value pairs +-- @param vars table: Table containing string-string key-value pairs -- representing variables to replace in the strings values of tbl. function util.variable_substitutions(tbl, vars) assert(type(tbl) == "table") assert(type(vars) == "table") - + local updated = {} for k, v in pairs(tbl) do if type(v) == "string" then @@ -698,9 +699,9 @@ end function util.opts_table(type_name, valid_opts) local opts_mt = {} - + opts_mt.__index = opts_mt - + function opts_mt.type() return type_name end -- 2.17.1
next prev parent reply other threads:[~2019-11-18 17:56 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-18 17:56 [Tarantool-patches] [PATCH LUAROCKS 0/2] Move a rocks options filter from tarantoolctl to luarocks Leonid 2019-11-18 17:56 ` Leonid [this message] 2019-11-18 17:56 ` [Tarantool-patches] [PATCH LUAROCKS 2/2] Add the tarantool options black list. Align the help with functionality 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=adcbcb7592f0c205ef5b9a6aec75be99441ea37c.1574098671.git.lvasiliev@tarantool.org \ --to=lvasiliev@tarantool.org \ --cc=alexander.turenko@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH LUAROCKS 1/2] Add the chdir option for make' \ /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