52 lines
1.4 KiB
Nix
52 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}
|
||
|
# ''
|