aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2018-06-19 00:08:33 -0300
committerHisham Muhammad <hisham@gobolinux.org>2018-06-28 17:28:40 -0300
commit447e8aa089fc189fef8434facfea2b0d84047749 (patch)
treeecc68539c43cf2414f17da6acdf260a37d666300 /src
parentd90c3c918a2555eff8776e1acabab7a777f13c31 (diff)
downloadluarocks-447e8aa089fc189fef8434facfea2b0d84047749.tar.gz
luarocks-447e8aa089fc189fef8434facfea2b0d84047749.tar.bz2
luarocks-447e8aa089fc189fef8434facfea2b0d84047749.zip
core.util: move type_check.merge_under to core.util.deep_merge_under
Diffstat (limited to 'src')
-rw-r--r--src/luarocks/core/util.lua22
-rw-r--r--src/luarocks/type_check.lua15
-rw-r--r--src/luarocks/util.lua10
3 files changed, 27 insertions, 20 deletions
diff --git a/src/luarocks/core/util.lua b/src/luarocks/core/util.lua
index 3582cb54..daec9d05 100644
--- a/src/luarocks/core/util.lua
+++ b/src/luarocks/core/util.lua
@@ -54,7 +54,7 @@ function util.show_table(t, tname, top_indent)
54 54
55 local function is_empty_table(tbl) return next(tbl) == nil end 55 local function is_empty_table(tbl) return next(tbl) == nil end
56 56
57 local function basic_serialize (o) 57 local function basic_serialize(o)
58 local so = tostring(o) 58 local so = tostring(o)
59 if type(o) == "function" then 59 if type(o) == "function" then
60 local info = debug.getinfo(o, "S") 60 local info = debug.getinfo(o, "S")
@@ -72,7 +72,7 @@ function util.show_table(t, tname, top_indent)
72 end 72 end
73 end 73 end
74 74
75 local function add_to_cart (value, name, indent, saved, field) 75 local function add_to_cart(value, name, indent, saved, field)
76 indent = indent or "" 76 indent = indent or ""
77 saved = saved or {} 77 saved = saved or {}
78 field = field or name 78 field = field or name
@@ -133,6 +133,24 @@ function util.deep_merge(dst, src)
133 end 133 end
134end 134end
135 135
136--- Merges contents of src below those of dst's contents.
137-- @param dst Destination table, which will receive src's contents.
138-- @param src Table which provides new contents to dst.
139function util.deep_merge_under(dst, src)
140 for k, v in pairs(src) do
141 if type(v) == "table" then
142 if not dst[k] then
143 dst[k] = {}
144 end
145 if type(dst[k]) == "table" then
146 util.deep_merge_under(dst[k], v)
147 end
148 elseif dst[k] == nil then
149 dst[k] = v
150 end
151 end
152end
153
136--- Clean up a path-style string ($PATH, $LUA_PATH/package.path, etc.), 154--- Clean up a path-style string ($PATH, $LUA_PATH/package.path, etc.),
137-- removing repeated entries and making sure only the relevant 155-- removing repeated entries and making sure only the relevant
138-- Lua version is used. 156-- Lua version is used.
diff --git a/src/luarocks/type_check.lua b/src/luarocks/type_check.lua
index 827c64b6..b204f5ee 100644
--- a/src/luarocks/type_check.lua
+++ b/src/luarocks/type_check.lua
@@ -4,7 +4,6 @@ local type_check = {}
4local cfg = require("luarocks.core.cfg") 4local cfg = require("luarocks.core.cfg")
5local vers = require("luarocks.core.vers") 5local vers = require("luarocks.core.vers")
6local util = require("luarocks.util") 6local util = require("luarocks.util")
7local require = nil
8-------------------------------------------------------------------------------- 7--------------------------------------------------------------------------------
9 8
10type_check.MAGIC_PLATFORMS = {} 9type_check.MAGIC_PLATFORMS = {}
@@ -34,18 +33,6 @@ do
34 end 33 end
35 end 34 end
36 35
37 local function merge_under(dst, src)
38 for k, v in pairs(src) do
39 if dst[k] == nil then
40 if type(dst[k]) == "table" then
41 util.deep_merge(dst[k], v)
42 else
43 dst[k] = v
44 end
45 end
46 end
47 end
48
49 -- Build a table of schemas. 36 -- Build a table of schemas.
50 -- @param versions a table where each key is a version number as a string, 37 -- @param versions a table where each key is a version number as a string,
51 -- and the value is a schema specification. Schema versions are considered 38 -- and the value is a schema specification. Schema versions are considered
@@ -75,7 +62,7 @@ do
75 -- so that error messages can inform users when they try 62 -- so that error messages can inform users when they try
76 -- to use new features without bumping rockspec_format in their rockspecs. 63 -- to use new features without bumping rockspec_format in their rockspecs.
77 for i = #version_list, 2, -1 do 64 for i = #version_list, 2, -1 do
78 merge_under(schemas[version_list[i - 1]], schemas[version_list[i]]) 65 util.deep_merge_under(schemas[version_list[i - 1]], schemas[version_list[i]])
79 end 66 end
80 67
81 return schemas 68 return schemas
diff --git a/src/luarocks/util.lua b/src/luarocks/util.lua
index f5506f53..ee4a803a 100644
--- a/src/luarocks/util.lua
+++ b/src/luarocks/util.lua
@@ -8,14 +8,16 @@ local util = {}
8 8
9local core = require("luarocks.core.util") 9local core = require("luarocks.core.util")
10 10
11util.popen_read = core.popen_read
12util.cleanup_path = core.cleanup_path 11util.cleanup_path = core.cleanup_path
13util.split_string = core.split_string 12util.split_string = core.split_string
14util.keys = core.keys
15util.printerr = core.printerr
16util.sortedpairs = core.sortedpairs 13util.sortedpairs = core.sortedpairs
17util.warning = core.warning
18util.deep_merge = core.deep_merge 14util.deep_merge = core.deep_merge
15util.deep_merge_under = core.deep_merge_under
16util.popen_read = core.popen_read
17util.show_table = core.show_table
18util.printerr = core.printerr
19util.warning = core.warning
20util.keys = core.keys
19 21
20local unpack = unpack or table.unpack 22local unpack = unpack or table.unpack
21 23