login

<     >

2023-07-20 15:41:40 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

better handling for repos with default desc

diff --git a/cogit/cogit.lua b/cogit/cogit.lua
index 49ec89b..2351894 100644
--- a/cogit/cogit.lua
+++ b/cogit/cogit.lua
@@ -46,14 +46,11 @@ local function diff_cb(line_type, line)
     return line .. "\n"
 end
 
-local function starts_with(str, sub)
-    return str:sub(1, #sub) == sub
-end
-
 local function allowed(is_admin, repo)
     if is_admin then return true end
-    if starts_with(repo.desc, "Unnamed") then return false end
-    if starts_with(repo.desc, ":") then return false end
+    if repo.desc == "" or repo.desc:sub(1, 1) == ":" then
+        return false
+    end
     return true
 end
 
@@ -115,9 +112,6 @@ function Cogit:routes()
         for rname, repo in pairs(self.repos) do
             if allowed(is_admin, repo) then
                 local desc = repo.desc:gsub("^:", "")
-                if starts_with(desc, "Unnamed") then
-                    desc = "<em>no description</em>"
-                end
                 table.insert(repos, {name=rname, desc=desc})
             end
         end

diff --git a/cogit/git.lua b/cogit/git.lua
index c4db1b7..615a3bd 100644
--- a/cogit/git.lua
+++ b/cogit/git.lua
@@ -360,6 +360,9 @@ local function open(path)
     assert(C.git_repository_open_bare(prepo, path) == 0)
     self.repo = prepo[0]
     self.desc = io.open(path.."/description"):read()
+    if self.desc:match("%w*") == "Unnamed" then
+        self.desc = ""
+    end
     return self
 end
 

diff --git a/view/home.html b/view/home.html
index 6b627de..5832cc9 100644
--- a/view/home.html
+++ b/view/home.html
@@ -42,7 +42,11 @@
     % for repo in $repos do
     <tr>
       <td><a href="/repo/{{$repo.name}}">{{$repo.name}}</a></td>
+      % if #$repo.desc > 0 then
       <td>{{$repo.desc}}</td>
+      % else
+      <td><em>no description</em></td>
+      % end
     </tr>
     % end
   </table>