0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 13:40:28 +03:00

cgit: parametrise subdirectory

This proposal enables the user to choose the sub-directory in which to serve cgit.
The previous default behaviour isn't altered.
This commit is contained in:
Notkea 2018-06-10 16:25:01 +02:00 committed by pacien
parent f0bfa9de83
commit 8b9559e417

View file

@ -4,8 +4,15 @@ with lib;
let let
cfg = config.services.lighttpd.cgit; cfg = config.services.lighttpd.cgit;
pathPrefix = if stringLength cfg.subdir == 0 then "" else "/" + cfg.subdir;
configFile = pkgs.writeText "cgitrc" configFile = pkgs.writeText "cgitrc"
'' ''
# default paths to static assets
css=${pathPrefix}/cgit.css
logo=${pathPrefix}/cgit.png
favicon=${pathPrefix}/favicon.ico
# user configuration
${cfg.configText} ${cfg.configText}
''; '';
in in
@ -18,8 +25,17 @@ in
type = types.bool; type = types.bool;
description = '' description = ''
If true, enable cgit (fast web interface for git repositories) as a If true, enable cgit (fast web interface for git repositories) as a
sub-service in lighttpd. cgit will be accessible at sub-service in lighttpd.
http://yourserver/cgit '';
};
subdir = mkOption {
default = "cgit";
example = "";
type = types.str;
description = ''
The subdirectory in which to serve cgit. The web application will be
accessible at http://yourserver/''${subdir}
''; '';
}; };
@ -48,14 +64,14 @@ in
services.lighttpd.enableModules = [ "mod_cgi" "mod_alias" "mod_setenv" ]; services.lighttpd.enableModules = [ "mod_cgi" "mod_alias" "mod_setenv" ];
services.lighttpd.extraConfig = '' services.lighttpd.extraConfig = ''
$HTTP["url"] =~ "^/cgit" { $HTTP["url"] =~ "^/${cfg.subdir}" {
cgi.assign = ( cgi.assign = (
"cgit.cgi" => "${pkgs.cgit}/cgit/cgit.cgi" "cgit.cgi" => "${pkgs.cgit}/cgit/cgit.cgi"
) )
alias.url = ( alias.url = (
"/cgit.css" => "${pkgs.cgit}/cgit/cgit.css", "${pathPrefix}/cgit.css" => "${pkgs.cgit}/cgit/cgit.css",
"/cgit.png" => "${pkgs.cgit}/cgit/cgit.png", "${pathPrefix}/cgit.png" => "${pkgs.cgit}/cgit/cgit.png",
"/cgit" => "${pkgs.cgit}/cgit/cgit.cgi" "${pathPrefix}" => "${pkgs.cgit}/cgit/cgit.cgi"
) )
setenv.add-environment = ( setenv.add-environment = (
"CGIT_CONFIG" => "${configFile}" "CGIT_CONFIG" => "${configFile}"