local git = require "git"
local scan = require "scan"
local lud = require "ludweb"
git.init()
local path = "/tmp/cogit"
local groups = scan.scanrepos(path)
local routes = {
{"GET", "/", function (req)
local gnames = {}
for gname in pairs(groups) do
table.insert(gnames, gname)
end
return lud.template.render_file("view/home.html", {gnames=gnames})
end},
{"GET", "/group/([%w_-]+)", function (req, gname)
local rnames = {}
for rname in pairs(groups[gname]) do
table.insert(rnames, rname)
end
return lud.template.render_file("view/group.html", {gname=gname, rnames=rnames})
end},
{"GET", "/group/([%w_-]+)/repo/([%w_-]+)", function (req, gname, rname)
local repo = groups[gname][rname]
local bnames = repo:branches()
local tnames = repo:tags()
return lud.template.render_file("view/repo.html", {gname=gname, rname=rname, bnames=bnames, tnames=tnames})
end},
}
local app = lud.app.new_app(routes)
app:run(8080)
git.shutdown()