Branch
Hash :
f53ca79b
Author :
Thomas de Grivel
Date :
2025-04-22T17:05:19
wip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
defmodule RbpkgController do
def index = fn () {
title = "ci.kmx.io - rbpkg index"
packages = Rbpkg.list_packages()
page = RbpkgView.render_index(packages)
body = LayoutView.render("rbpkg-index", title, page,
Route.rbpkg())
%HTTP.Response{body: body}
}
def show_repo = fn (repo, tree) {
packages = Rbpkg.list_packages()
if List.has?(packages, repo) do
title = "ci.kmx.io - rbpkg repo #{repo} #{tree}"
info = Rbpkg.info()
repo_info = Rbpkg.package_info(repo, tree)
page = RbpkgView.render_show_repo(repo, tree, info, repo_info)
body = LayoutView.render("rbpkg-repo", title, page,
Route.rbpkg(repo))
%HTTP.Response{body: body}
end
}
def route = fn (request) {
url = if request.url == "/rbpkg" do "/rbpkg/" else request.url end
if Str.starts_with?(url, "/rbpkg/") do
url = Str.slice(url, 7, -1)
if Str.ends_with?(url, "/") do
url = Str.slice(url, 0, -2)
end
list = Str.split(url, "/")
if request.method == GET ||
request.method == HEAD do
if url == "" || [] == list do
index()
else
if [repo, tree, "host", host] = ^ list do
proxy(repo, tree, host)
else
if [repo, tree] = ^ list do
show_repo(repo, tree)
else
if [repo] = ^ list do
show_repo(repo, "master")
end
end
end
end
end
end
}
end