diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-08-28 11:44:20 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-08-28 11:44:20 +0100 |
commit | e307cfa08ca2ad0626e71b0de9b336ff9806fe6c (patch) | |
tree | 2d0a9e6ee1cf07ef22a851802d791541c24e8ece /lib | |
parent | a509b61051418af47a439b0325f89f74ddfa70ec (diff) | |
download | gitano-e307cfa08ca2ad0626e71b0de9b336ff9806fe6c.tar.gz |
REPOSITORY: Generate cgitrc
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitano/repository.lua | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/gitano/repository.lua b/lib/gitano/repository.lua index 1d1229d..809dfbe 100644 --- a/lib/gitano/repository.lua +++ b/lib/gitano/repository.lua @@ -239,6 +239,43 @@ function repo_method:check_local_git_files() self.git:config("gitweb.owner", owner.real_name .. " <" .. owner.email_address .. ">") end + -- Construct a cgitrc in case we're using cgit instead of gitweb + local cgitrc = {} + local function add_cgitrc(key, value) + cgitrc[#cgitrc+1] = ("repo.%s: %s"):format(key, tostring(value)) + end + for _, suffix in ipairs { + "readme", "section", "logo", "logo-link", "defbranch", "clone-url", + "snapshots" } do + local v = self.project_config.settings["cgitrc." .. suffix] + if v then + add_cgitrc(suffix, v) + end + end + if owner then + add_cgitrc("owner", owner.real_name .. " <" .. owner.email_address .. ">") + end + local description = self:conf_get "project.description" + if description and description ~= "" then + add_cgitrc("desc", description) + end + table.sort(cgitrc) + cgitrc[#cgitrc+1] = "" + cgitrc = table.concat(cgitrc, "\n") + local fh, err = sio.open(self:fs_path() .. "/cgitrc.new", "wc") + if fh then + fh:write(cgitrc) + fh:close() + local ok, errno = luxio.rename(self:fs_path() .. "/cgitrc.new", + self:fs_path() .. "/cgitrc") + if ok ~= 0 then + log.warn("Unable to rename cgitrc into place:", + luxio.strerror(errno)) + end + else + log.warn("Unable to write cgitrc out:", tostring(err)) + end + return true end |