aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Melnichenko <mpeterval@gmail.com>2016-10-19 11:55:51 +0300
committerPeter Melnichenko <mpeterval@gmail.com>2016-10-19 12:18:16 +0300
commit574897fb8a878e0abf56d7f3f5ed2a6459dbfba8 (patch)
tree8e3d9bda43cc262232457b198eb485935f0238ee
parentf83a936687d33b9b5ec9211d8b5534650b471385 (diff)
downloadluarocks-574897fb8a878e0abf56d7f3f5ed2a6459dbfba8.tar.gz
luarocks-574897fb8a878e0abf56d7f3f5ed2a6459dbfba8.tar.bz2
luarocks-574897fb8a878e0abf56d7f3f5ed2a6459dbfba8.zip
Run manif.update_manifest in repos.deploy_files
Similarly to repos.delete_version, it's a good idea to update manifest immediately after altering what's deployed, even though in this case manifest was always updated by the caller. Also added more doc comments for repos functions.
Diffstat (limited to '')
-rw-r--r--src/luarocks/build.lua5
-rw-r--r--src/luarocks/install.lua7
-rw-r--r--src/luarocks/repos.lua27
3 files changed, 26 insertions, 13 deletions
diff --git a/src/luarocks/build.lua b/src/luarocks/build.lua
index f2784a3a..b306b050 100644
--- a/src/luarocks/build.lua
+++ b/src/luarocks/build.lua
@@ -320,7 +320,7 @@ function build.build_rockspec(rockspec_file, need_to_fetch, minimal_mode, deps_m
320 ok, err = manif.make_rock_manifest(name, version) 320 ok, err = manif.make_rock_manifest(name, version)
321 if err then return nil, err end 321 if err then return nil, err end
322 322
323 ok, err = repos.deploy_files(name, version, repos.should_wrap_bin_scripts(rockspec)) 323 ok, err = repos.deploy_files(name, version, repos.should_wrap_bin_scripts(rockspec), deps_mode)
324 if err then return nil, err end 324 if err then return nil, err end
325 325
326 util.remove_scheduled_function(rollback) 326 util.remove_scheduled_function(rollback)
@@ -331,9 +331,6 @@ function build.build_rockspec(rockspec_file, need_to_fetch, minimal_mode, deps_m
331 ok, err = repos.run_hook(rockspec, "post_install") 331 ok, err = repos.run_hook(rockspec, "post_install")
332 if err then return nil, err end 332 if err then return nil, err end
333 333
334 ok, err = manif.update_manifest(name, version, nil, deps_mode)
335 if err then return nil, err end
336
337 util.announce_install(rockspec) 334 util.announce_install(rockspec)
338 util.remove_scheduled_function(rollback) 335 util.remove_scheduled_function(rollback)
339 return name, version 336 return name, version
diff --git a/src/luarocks/install.lua b/src/luarocks/install.lua
index daebfc70..b5128430 100644
--- a/src/luarocks/install.lua
+++ b/src/luarocks/install.lua
@@ -84,7 +84,7 @@ function install.install_binary_rock(rock_file, deps_mode)
84 if err then return nil, err, errcode end 84 if err then return nil, err, errcode end
85 end 85 end
86 86
87 ok, err = repos.deploy_files(name, version, repos.should_wrap_bin_scripts(rockspec)) 87 ok, err = repos.deploy_files(name, version, repos.should_wrap_bin_scripts(rockspec), deps_mode)
88 if err then return nil, err end 88 if err then return nil, err end
89 89
90 util.remove_scheduled_function(rollback) 90 util.remove_scheduled_function(rollback)
@@ -94,10 +94,7 @@ function install.install_binary_rock(rock_file, deps_mode)
94 94
95 ok, err = repos.run_hook(rockspec, "post_install") 95 ok, err = repos.run_hook(rockspec, "post_install")
96 if err then return nil, err end 96 if err then return nil, err end
97 97
98 ok, err = manif.update_manifest(name, version, nil, deps_mode)
99 if err then return nil, err end
100
101 util.announce_install(rockspec) 98 util.announce_install(rockspec)
102 util.remove_scheduled_function(rollback) 99 util.remove_scheduled_function(rollback)
103 return name, version 100 return name, version
diff --git a/src/luarocks/repos.lua b/src/luarocks/repos.lua
index 4e8a9a13..a1cf2bb4 100644
--- a/src/luarocks/repos.lua
+++ b/src/luarocks/repos.lua
@@ -190,7 +190,18 @@ function repos.should_wrap_bin_scripts(rockspec)
190 return true 190 return true
191end 191end
192 192
193function repos.deploy_files(name, version, wrap_bin_scripts) 193--- Deploy a package from the rocks subdirectory.
194-- It is maintained that for each file the one that is provided
195-- by the newest version of the lexicographically smallest package
196-- is installed using unversioned name, and other versions of the file
197-- use versioned names.
198-- @param name string: name of package
199-- @param version string: exact package version in string format
200-- @param wrap_bin_scripts bool: whether commands written in Lua should be wrapped.
201-- @param deps_mode: string: Which trees to check dependencies for:
202-- "one" for the current default tree, "all" for all trees,
203-- "order" for all trees with priority >= the current default, "none" for no trees.
204function repos.deploy_files(name, version, wrap_bin_scripts, deps_mode)
194 assert(type(name) == "string") 205 assert(type(name) == "string")
195 assert(type(version) == "string") 206 assert(type(version) == "string")
196 assert(type(wrap_bin_scripts) == "boolean") 207 assert(type(wrap_bin_scripts) == "boolean")
@@ -245,7 +256,12 @@ function repos.deploy_files(name, version, wrap_bin_scripts)
245 if ok and rock_manifest.lib then 256 if ok and rock_manifest.lib then
246 ok, err = deploy_file_tree(rock_manifest.lib, path.lib_dir, cfg.deploy_lib_dir, make_mover(cfg.perm_exec)) 257 ok, err = deploy_file_tree(rock_manifest.lib, path.lib_dir, cfg.deploy_lib_dir, make_mover(cfg.perm_exec))
247 end 258 end
248 return ok, err 259
260 if not ok then
261 return nil, err
262 end
263
264 return manif.update_manifest(name, version, nil, deps_mode)
249end 265end
250 266
251local function delete_suffixed(filename, suffix) 267local function delete_suffixed(filename, suffix)
@@ -264,9 +280,12 @@ local function delete_suffixed(filename, suffix)
264end 280end
265 281
266--- Delete a package from the local repository. 282--- Delete a package from the local repository.
267-- Version numbers are compared as exact string comparison. 283-- It is maintained that for each file the one that is provided
284-- by the newest version of the lexicographically smallest package
285-- is installed using unversioned name, and other versions of the file
286-- use versioned names.
268-- @param name string: name of package 287-- @param name string: name of package
269-- @param version string: package version in string format 288-- @param version string: exact package version in string format
270-- @param deps_mode: string: Which trees to check dependencies for: 289-- @param deps_mode: string: Which trees to check dependencies for:
271-- "one" for the current default tree, "all" for all trees, 290-- "one" for the current default tree, "all" for all trees,
272-- "order" for all trees with priority >= the current default, "none" for no trees. 291-- "order" for all trees with priority >= the current default, "none" for no trees.