Tarantool development patches archive
 help / color / mirror / Atom feed
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

  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