From d339f03ff7e8c7b1ca922aa75bb1461fb5faa97d Mon Sep 17 00:00:00 2001
From: hisham
+Lua modules avaliable from this location for use with LuaRocks:
+ $detailedAvailable rocks
+
+]]
+
+local index_package_start = [[
+
+
+
+
+]]
+
+function make_index(repo)
+ if not fs.is_dir(repo) then
+ return nil, "Cannot access repository at "..repo
+ end
+ local manifest = manif.load_manifest(repo)
+ local out = io.open(dir.path(repo, "index.html"), "w")
+
+ out:write(index_header)
+ for package, version_list in util.sortedpairs(manifest.repository) do
+ local latest_rockspec = nil
+ local output = index_package_start
+ for version, data in util.sortedpairs(version_list, deps.compare_versions) do
+ local out_versions = {}
+ local arches = 0
+ output = output..version
+ local sep = ': '
+ for _, item in ipairs(data) do
+ output = output .. sep .. ''..item.arch..''
+ sep = ', '
+ if item.arch == 'rockspec' then
+ local rs = ("%s-%s.rockspec"):format(package, version)
+ if not latest_rockspec then latest_rockspec = rs end
+ output = output:gsub("$url", rs)
+ else
+ output = output:gsub("$url", ("%s-%s.%s.rock"):format(package, version, item.arch))
+ end
+ end
+ output = output .. '
+
+
+latest sources $homepage | License: $license
+]]
+
+local index_package_end = [[
+
+
+]]
+
+local index_footer = [[
+
'
+ output = output:gsub("$na", arches)
+ end
+ output = output .. index_package_end
+ if latest_rockspec then
+ local rockspec = persist.load_into_table(dir.path(repo, latest_rockspec))
+ local vars = {
+ anchor = package,
+ package = rockspec.package,
+ original = rockspec.source.url,
+ summary = rockspec.description.summary or "",
+ detailed = rockspec.description.detailed or "",
+ license = rockspec.description.license or "N/A",
+ homepage = rockspec.description.homepage and ("| project homepage") or ""
+ }
+ vars.detailed = vars.detailed:gsub("\n\n", "
"):gsub("%s+", " ") + output = output:gsub("$(%w+)", vars) + else + output = output:gsub("$anchor", package) + output = output:gsub("$package", package) + output = output:gsub("$(%w+)", "") + end + out:write(output) + end + out:write(index_footer) + out:close() +end -- cgit v1.2.3-55-g6feb