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 /src | |
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
Diffstat (limited to 'src')
-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 |