11022c1b88
This is currently just a test to serve examples from my local machine, nothing more fancy than that.
51 lines
1.4 KiB
Nix
51 lines
1.4 KiB
Nix
# This derivation configures a 'cgit' instance to serve repositories
|
|
# from a different source.
|
|
#
|
|
# In the first round this will just serve my GitHub repositories until
|
|
# I'm happy with the display.
|
|
|
|
{ pkgs, ... }:
|
|
|
|
with pkgs.third_party;
|
|
|
|
let
|
|
cgitConfig = writeText "cgitrc" ''
|
|
virtual-root=/cgit.cgi/
|
|
|
|
repo.url=depot
|
|
repo.path=/home/tazjin/depot/.git
|
|
repo.desc=tazjin's personal monorepo
|
|
'';
|
|
cgitPatch = writeText "cgit_config.patch" ''
|
|
diff --git a/Makefile b/Makefile
|
|
index 05ea71f..0df886e 100644
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -4,7 +4,7 @@ CGIT_VERSION = v1.2.1
|
|
CGIT_SCRIPT_NAME = cgit.cgi
|
|
CGIT_SCRIPT_PATH = /var/www/htdocs/cgit
|
|
CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH)
|
|
-CGIT_CONFIG = /etc/cgitrc
|
|
+CGIT_CONFIG = ${cgitConfig}
|
|
CACHE_ROOT = /var/cache/cgit
|
|
prefix = /usr/local
|
|
libdir = $(prefix)/lib
|
|
'';
|
|
cgitWithConfig = cgit.overrideAttrs(old: {
|
|
patches = old.patches ++ [ cgitPatch ];
|
|
});
|
|
thttpdConfig = writeText "thttpd.conf" ''
|
|
port=8080
|
|
dir=${cgitWithConfig}/cgit
|
|
nochroot
|
|
novhost
|
|
logfile=/dev/stdout
|
|
cgipat=**.cgi
|
|
'';
|
|
# Patched version of thttpd that serves cgit.cgi as the index
|
|
thttpdCgit = thttpd.overrideAttrs(old: {
|
|
patches = [ ./cgit_idx.patch ];
|
|
});
|
|
in writeShellScriptBin "cgit-launch" ''
|
|
exec ${thttpdCgit}/bin/thttpd -D -C ${thttpdConfig}
|
|
# ''
|