handheld-daemon-ui: 3.2.3 -> 3.3.0 (#361609)
[NixPkgs.git] / nixos / modules / services / web-servers / lighttpd / gitweb.nix
blobc494d6966a7f581303de6d17d952bef115b1bf6e
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   cfg = config.services.gitweb;
7   package = pkgs.gitweb.override (optionalAttrs cfg.gitwebTheme {
8     gitwebTheme = true;
9   });
14   options.services.lighttpd.gitweb = {
16     enable = mkOption {
17       default = false;
18       type = types.bool;
19       description = ''
20         If true, enable gitweb in lighttpd. Access it at http://yourserver/gitweb
21       '';
22     };
24   };
26   config = mkIf config.services.lighttpd.gitweb.enable {
28     # declare module dependencies
29     services.lighttpd.enableModules = [ "mod_cgi" "mod_redirect" "mod_alias" "mod_setenv" ];
31     services.lighttpd.extraConfig = ''
32       $HTTP["url"] =~ "^/gitweb" {
33           cgi.assign = (
34               ".cgi" => "${pkgs.perl}/bin/perl"
35           )
36           url.redirect = (
37               "^/gitweb$" => "/gitweb/"
38           )
39           alias.url = (
40               "/gitweb/static/" => "${package}/static/",
41               "/gitweb/"        => "${package}/gitweb.cgi"
42           )
43           setenv.add-environment = (
44               "GITWEB_CONFIG" => "${cfg.gitwebConfigFile}",
45               "HOME" => "${cfg.projectroot}"
46           )
47       }
48     '';
50   };