diff options
| author | hisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c> | 2009-10-05 18:21:45 +0000 |
|---|---|---|
| committer | hisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c> | 2009-10-05 18:21:45 +0000 |
| commit | 989701b2ed22b2479a7df8a5252951e53622dd31 (patch) | |
| tree | 8fcb1b4117f1243de59ab8faa9d53e48cc009977 | |
| parent | d1d1231472e7aa1dc005acb827dd28ee060dd574 (diff) | |
| download | luarocks-989701b2ed22b2479a7df8a5252951e53622dd31.tar.gz luarocks-989701b2ed22b2479a7df8a5252951e53622dd31.tar.bz2 luarocks-989701b2ed22b2479a7df8a5252951e53622dd31.zip | |
add extra checking
git-svn-id: http://luarocks.org/svn/luarocks/trunk@67 9ca3f7c1-7366-0410-b1a3-b5c78f85698c
| -rw-r--r-- | src/luarocks/manif.lua | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/luarocks/manif.lua b/src/luarocks/manif.lua index e3e2728b..63ba4a17 100644 --- a/src/luarocks/manif.lua +++ b/src/luarocks/manif.lua | |||
| @@ -210,26 +210,31 @@ local function store_results(results, manifest) | |||
| 210 | assert(type(results) == "table") | 210 | assert(type(results) == "table") |
| 211 | assert(type(manifest) == "table") | 211 | assert(type(manifest) == "table") |
| 212 | 212 | ||
| 213 | for pkg, versions in pairs(results) do | 213 | for name, versions in pairs(results) do |
| 214 | local pkgtable = manifest.repository[pkg] or {} | 214 | local pkgtable = manifest.repository[name] or {} |
| 215 | for version, entries in pairs(versions) do | 215 | for version, entries in pairs(versions) do |
| 216 | local versiontable = {} | 216 | local versiontable = {} |
| 217 | for _, entry in ipairs(entries) do | 217 | for _, entry in ipairs(entries) do |
| 218 | local entrytable = {} | 218 | local entrytable = {} |
| 219 | entrytable.arch = entry.arch | 219 | entrytable.arch = entry.arch |
| 220 | if entry.arch == "installed" then | 220 | if entry.arch == "installed" then |
| 221 | entrytable.modules = store_package_items(rep.package_modules, pkg, version, manifest.modules) | 221 | local rock_manifest = load_rock_manifest(name, version) |
| 222 | entrytable.commands = store_package_items(rep.package_commands, pkg, version, manifest.commands) | 222 | if not rock_manifest then |
| 223 | return nil, "rock_manifest file not found for "..name.." "..version.." - not a LuaRocks 2 tree?" | ||
| 224 | end | ||
| 225 | entrytable.modules = store_package_items(rep.package_modules, name, version, manifest.modules) | ||
| 226 | entrytable.commands = store_package_items(rep.package_commands, name, version, manifest.commands) | ||
| 223 | end | 227 | end |
| 224 | table.insert(versiontable, entrytable) | 228 | table.insert(versiontable, entrytable) |
| 225 | end | 229 | end |
| 226 | pkgtable[version] = versiontable | 230 | pkgtable[version] = versiontable |
| 227 | end | 231 | end |
| 228 | manifest.repository[pkg] = pkgtable | 232 | manifest.repository[name] = pkgtable |
| 229 | end | 233 | end |
| 230 | update_dependencies(manifest) | 234 | update_dependencies(manifest) |
| 231 | sort_package_matching_table(manifest.modules) | 235 | sort_package_matching_table(manifest.modules) |
| 232 | sort_package_matching_table(manifest.commands) | 236 | sort_package_matching_table(manifest.commands) |
| 237 | return true | ||
| 233 | end | 238 | end |
| 234 | 239 | ||
| 235 | --- Scan a LuaRocks repository and output a manifest file. | 240 | --- Scan a LuaRocks repository and output a manifest file. |
| @@ -252,10 +257,8 @@ function make_manifest(repo) | |||
| 252 | local manifest = { repository = {}, modules = {}, commands = {} } | 257 | local manifest = { repository = {}, modules = {}, commands = {} } |
| 253 | manif_core.manifest_cache[repo] = manifest | 258 | manif_core.manifest_cache[repo] = manifest |
| 254 | 259 | ||
| 255 | print(util.show_table(results, "results")) | 260 | local ok, err = store_results(results, manifest) |
| 256 | print(util.show_table(manifest, "manifest")) | 261 | if not ok then return nil, err end |
| 257 | |||
| 258 | store_results(results, manifest) | ||
| 259 | 262 | ||
| 260 | return save_table(repo, "manifest", manifest) | 263 | return save_table(repo, "manifest", manifest) |
| 261 | end | 264 | end |
| @@ -293,7 +296,8 @@ function update_manifest(name, version, repo) | |||
| 293 | 296 | ||
| 294 | local results = {[name] = {[version] = {{arch = "installed", repo = repo}}}} | 297 | local results = {[name] = {[version] = {{arch = "installed", repo = repo}}}} |
| 295 | 298 | ||
| 296 | store_results(results, manifest) | 299 | local ok, err = store_results(results, manifest) |
| 300 | if not ok then return nil, err end | ||
| 297 | 301 | ||
| 298 | return save_table(repo, "manifest", manifest) | 302 | return save_table(repo, "manifest", manifest) |
| 299 | end | 303 | end |
