From de9c9823b9a3e5a0c712bcf23f30d800c18825a4 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Thu, 14 Nov 2013 22:21:18 -0200 Subject: Fix `luarocks path` now that luarocks.cfg no longer edits package.path --- src/luarocks/path.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/luarocks/path.lua b/src/luarocks/path.lua index f8ae15c0..d7273095 100644 --- a/src/luarocks/path.lua +++ b/src/luarocks/path.lua @@ -410,9 +410,17 @@ function run(...) util.printout(util.remove_path_dupes(lr_bin, ';')) return true end + + if flags["append"] then + lr_path = package.path .. ";" .. lr_path + lr_cpath = package.cpath .. ";" .. lr_cpath + else + lr_path = lr_path.. ";" .. package.path + lr_cpath = lr_cpath .. ";" .. package.cpath + end - util.printout(cfg.export_lua_path:format(util.remove_path_dupes(package.path, ';'))) - util.printout(cfg.export_lua_cpath:format(util.remove_path_dupes(package.cpath, ';'))) + util.printout(cfg.export_lua_path:format(util.remove_path_dupes(lr_path, ';'))) + util.printout(cfg.export_lua_cpath:format(util.remove_path_dupes(lr_cpath, ';'))) if flags["bin"] then table.insert(bin_dirs, 1, os.getenv("PATH")) local lr_bin = util.remove_path_dupes(table.concat(bin_dirs, cfg.export_path_separator), cfg.export_path_separator) -- cgit v1.2.3-55-g6feb From 64ca4ac45a4e5dad245f6f1c3dd93b097ec55c89 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Sun, 17 Nov 2013 15:24:48 -0200 Subject: Make sure manifest unzips properly, to avoid stale manifests. --- src/luarocks/manif.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/luarocks/manif.lua b/src/luarocks/manif.lua index 9feb35ce..1c7707a9 100644 --- a/src/luarocks/manif.lua +++ b/src/luarocks/manif.lua @@ -139,9 +139,11 @@ function load_manifest(repo_url) if pathname:match(".*%.zip$") then local dir = dir.dir_name(pathname) fs.change_dir(dir) + local nozip = pathname:match("(.*)%.zip$") + fs.delete(nozip) fs.unzip(pathname) fs.pop_dir() - pathname = pathname:match("(.*)%.zip$") + pathname = nozip end return manif_core.manifest_loader(pathname, repo_url) end -- cgit v1.2.3-55-g6feb From a1f62e69ee7fdb1dfd6dc36aad48e1306a70bb14 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Sun, 17 Nov 2013 19:45:24 -0200 Subject: Add --force flag. Should be useful for François Perrad's work on the BuildRoot infrastructure for LuaRocks. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/luarocks/unpack.lua | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/luarocks/unpack.lua b/src/luarocks/unpack.lua index 70c116fd..95762a2c 100644 --- a/src/luarocks/unpack.lua +++ b/src/luarocks/unpack.lua @@ -10,11 +10,13 @@ local build = require("luarocks.build") local dir = require("luarocks.dir") help_summary = "Unpack the contents of a rock." -help_arguments = "{| []}" +help_arguments = "[--force] {| []}" help = [[ Unpacks the contents of a rock in a newly created directory. Argument may be a rock file, or the name of a rock in a rocks server. In the latter case, the app version may be given as a second argument. + +--force Unpack files even if the output directory already exists. ]] --- Load a rockspec file to the given directory, fetches the source @@ -88,7 +90,7 @@ end -- @param file string: A rockspec or .rock URL. -- @return boolean or (nil, string): true if successful or nil followed -- by an error message. -local function run_unpacker(file) +local function run_unpacker(file, force) assert(type(file) == "string") local base_name = dir.base_name(file) @@ -100,12 +102,15 @@ local function run_unpacker(file) if not extension then return nil, file.." does not seem to be a valid filename." end - - if (fs.exists(dir_name)) then + + local exists = fs.exists(dir_name) + if exists and not force then return nil, "Directory "..dir_name.." already exists." end - local ok, err = fs.make_dir(dir_name) - if not ok then return nil, err end + if not exists then + local ok, err = fs.make_dir(dir_name) + if not ok then return nil, err end + end local rollback = util.schedule_function(fs.delete, fs.absolute_name(dir_name)) local rockspec, err @@ -149,7 +154,7 @@ function run(...) end if name:match(".*%.rock") or name:match(".*%.rockspec") then - return run_unpacker(name) + return run_unpacker(name, flags["force"]) else local search = require("luarocks.search") return search.act_on_src_or_rockspec(run_unpacker, name, version) -- cgit v1.2.3-55-g6feb From 579ad25c0c89e3844bd729ff909db5680fbbbe80 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Mon, 18 Nov 2013 09:41:20 +0100 Subject: fixed type. Fixes #185 --- src/luarocks/cfg.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua index e3d924fb..f66ad1d9 100644 --- a/src/luarocks/cfg.lua +++ b/src/luarocks/cfg.lua @@ -322,7 +322,7 @@ if detected.windows then local localappdata = os.getenv("LOCALAPPDATA") if not localappdata then -- for Windows versions below Vista - localappdata = os.getenv("USER_PROFILE").."/Local Settings/Application Data" + localappdata = os.getenv("USERPROFILE").."/Local Settings/Application Data" end defaults.local_cache = localappdata.."/LuaRocks/Cache" end -- cgit v1.2.3-55-g6feb