Mercurial Hosting > hghosting
view src/admin/add.html.luan @ 12:c560b4e2f056
subdir for repos logs
author | Vadim Filimonov <fffilimonov@yandex.ru> |
---|---|
date | Thu, 28 Jul 2022 16:16:22 +0300 |
parents | a7187a447835 |
children | b14073ab9d07 |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local String = require "luan:String.luan" local matches = String.matches or error() local Io = require "luan:Io.luan" local Http = require "luan:http/Http.luan" local Shared = require "site:/lib/Shared.luan" local head = Shared.head or error() local header = Shared.admin_header or error() local get_user = Shared.get_user or error() local get_raw_config = Shared.get_raw_config or error() local save_raw_config = Shared.save_raw_config or error() local admin_return = Shared.admin_return or error() local function handle() local user = get_user() local repo_name = Http.request.parameters.repo or error() matches( repo_name, "^[a-z0-9_][a-z0-9_-]*$" ) or error "invalid regex name" if repo_name=="_all" or repo_name=="_private" then return [[<p error>Invalid rep name</p>]] end local raw_config = get_raw_config() if raw_config.repos[repo_name] ~= nil then return [[<p error>A repo named <b>]]..repo_name..[[</b> already exists</p>]] end raw_config.repos[repo_name] = { mode = "public" users = {user} admins = {user} } save_raw_config(raw_config) return [[<p>Repo <b>]]..repo_name..[[</b> created</p>]]..admin_return end return function() Io.stdout = Http.response.text_writer() %> <!doctype html> <html> <head> <% head() %> <title>Add Mercurial Repository</title> </head> <body> <% header() %> <div content> <h1>Add Repository</h1> <%=handle()%> </div> </body> </html> <% end