aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c>2009-10-05 18:21:45 +0000
committerhisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c>2009-10-05 18:21:45 +0000
commit989701b2ed22b2479a7df8a5252951e53622dd31 (patch)
tree8fcb1b4117f1243de59ab8faa9d53e48cc009977 /src
parentd1d1231472e7aa1dc005acb827dd28ee060dd574 (diff)
downloadluarocks-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.lua24
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
233end 238end
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)
261end 264end
@@ -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)
299end 303end