about summary refs log tree commit diff
path: root/users/sterni
diff options
context:
space:
mode:
Diffstat (limited to 'users/sterni')
-rw-r--r--users/sterni/machines/edwin/http/code.sterni.lv.nix92
1 files changed, 57 insertions, 35 deletions
diff --git a/users/sterni/machines/edwin/http/code.sterni.lv.nix b/users/sterni/machines/edwin/http/code.sterni.lv.nix
index 6c7e73cbc24e..8b842c9976d4 100644
--- a/users/sterni/machines/edwin/http/code.sterni.lv.nix
+++ b/users/sterni/machines/edwin/http/code.sterni.lv.nix
@@ -4,41 +4,56 @@
 let
   virtualHost = "code.sterni.lv";
 
-  repos = {
-    spacecookie = {
-      description = "gopher server (and library for Haskell)";
-    };
-    gopher-proxy = {
-      description = "Gopher over HTTP proxy";
-    };
-    emoji-generic = {
-      description = "generic emoji library for Haskell (wip)";
-    };
-    grav2ty = {
-      description = "“realistic” 2d space game";
-    };
-    likely-music = {
-      description = "experimental application for probabilistic music composition";
-    };
-    logbook = {
-      description = "file format for keeping a personal log";
-    };
-    sternenblog = {
-      description = "file based cgi blog software";
-    };
-    haskell-dot-time = {
-      description = "UTC-centric time library for haskell with dot time support";
-      defaultBranch = "main";
-    };
-    buchstabensuppe = {
-      description = "toy font rendering for low pixelcount, high contrast displays";
-      defaultBranch = "main";
-    };
-  };
+  repoSections = [
+    {
+      section = "active";
+      repos = {
+        spacecookie = {
+          description = "gopher server (and library for Haskell)";
+        };
+      };
+    }
+    {
+      section = "poc";
+      repos = {
+        emoji-generic = {
+          description = "generic emoji library for Haskell";
+        };
+        grav2ty = {
+          description = "“realistic” 2d space game";
+        };
+        haskell-dot-time = {
+          description = "UTC-centric time library for haskell with dot time support";
+          defaultBranch = "main";
+        };
+        buchstabensuppe = {
+          description = "toy font rendering for low pixelcount, high contrast displays";
+          defaultBranch = "main";
+        };
+      };
+    }
+    {
+      section = "archive";
+      repos = {
+        gopher-proxy = {
+          description = "Gopher over HTTP proxy";
+        };
+        likely-music = {
+          description = "experimental application for probabilistic music composition";
+        };
+        logbook = {
+          description = "file format for keeping a personal log";
+        };
+        sternenblog = {
+          description = "file based cgi blog software";
+        };
+      };
+    }
+  ];
 
   cgitRepoEntry = name: repo:
     let
-      repoName = repos.name or name;
+      repoName = repo.name or name;
       path = repo.path or "${repoName}.git";
     in
     lib.concatStringsSep "\n" (
@@ -75,8 +90,7 @@ let
     enable-blame=1
     enable-commit-graph=1
 
-    root-title=code
-    root-desc=sterni's git repositories
+    root-title=code.sterni.lv
     css=/cgit.css
     head-include=${cgitHead}
 
@@ -87,7 +101,15 @@ let
     readme=:README.md
     readme=:readme.md
 
-    ${builtins.concatStringsSep "\n\n" (lib.mapAttrsToList cgitRepoEntry repos)}
+    section-sort=0
+    ${
+      lib.concatMapStringsSep "\n" (section:
+        ''
+          section=${section.section}
+        ''
+        + builtins.concatStringsSep "\n\n" (lib.mapAttrsToList cgitRepoEntry section.repos)
+      ) repoSections
+    }
   '';
 in