From 0f2b7ef0feeeead5edfbb087b4713addb026c739 Mon Sep 17 00:00:00 2001 From: hisham Date: Wed, 27 May 2009 00:04:35 +0000 Subject: work in conversion of manifest format git-svn-id: http://luarocks.org/svn/luarocks/trunk@25 9ca3f7c1-7366-0410-b1a3-b5c78f85698c --- src/luarocks.lua | 2 +- src/luarocks/manif.lua | 9 ++++----- src/luarocks/rep.lua | 20 ++++++++------------ 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/luarocks.lua b/src/luarocks.lua index aef93363..8530fd90 100644 --- a/src/luarocks.lua +++ b/src/luarocks.lua @@ -182,7 +182,7 @@ local function pick_module(module, constraints) for _, tree in pairs(rocks_trees) do local entries = tree.manifest.modules[module] if entries then - for _, entry in pairs(entries) do + for entry, _ in pairs(entries) do local name, version = entry:match("^([^/]*)/(.*)$") if context[name] == version then return name, version, tree diff --git a/src/luarocks/manif.lua b/src/luarocks/manif.lua index f9c53d4f..6bf3fe15 100644 --- a/src/luarocks/manif.lua +++ b/src/luarocks/manif.lua @@ -72,14 +72,14 @@ local function store_package_items(itemsfn, pkg, version, tbl) assert(type(version) == "string") assert(type(tbl) == "table") - local path = pkg.."/"..version + local pkg_version = pkg.."/"..version local result = {} - for item, _ in pairs(itemsfn(pkg, version)) do - table.insert(result, item) + for item, path in pairs(itemsfn(pkg, version)) do + result[item] = path if not tbl[item] then tbl[item] = {} end - table.insert(tbl[item], path) + tbl[item][pkg_version] = path end return result end @@ -237,7 +237,6 @@ function make_manifest(repo) query.exact_name = false query.arch = "any" local results = search.disk_search(repo, query) - local manifest = { repository = {}, modules = {}, commands = {} } manif_core.manifest_cache[repo] = manifest store_results(results, manifest) diff --git a/src/luarocks/rep.lua b/src/luarocks/rep.lua index 304832f1..392c4353 100644 --- a/src/luarocks/rep.lua +++ b/src/luarocks/rep.lua @@ -107,18 +107,14 @@ function package_modules(package, version) assert(type(version) == "string") local result = {} - local luas = fs.find(path.lua_dir(package, version)) - local libs = fs.find(path.lib_dir(package, version)) - for _, file in ipairs(luas) do - local name = path.path_to_module(file) - if name then - result[name] = file - end - end - for _, file in ipairs(libs) do - local name = path.path_to_module(file) - if name then - result[name] = file + for _, pathdir in pairs{ path.lua_dir, path.lib_dir } do + local basedir = pathdir(package, version) + local files = fs.find(basedir) + for _, file in ipairs(files) do + local name = path.path_to_module(file) + if name then + result[name] = dir.path(basedir, file) + end end end return result -- cgit v1.2.3-55-g6feb