{ config, lib, pkgs, ... }: let cfg = config.gitolite; in { options.gitolite = { user = lib.mkOption { type = lib.types.str; }; group = lib.mkOption { type = lib.types.str; }; dataDir = lib.mkOption { type = lib.types.str; }; }; config = { services.gitolite = { enable = true; adminPubkey = ""; # TODO: submit PR to nixpkgs to make this option optional user = cfg.user; group = cfg.group; dataDir = cfg.dataDir; extraGitoliteRc = '' $RC{UMASK} = 0027; $RC{GIT_CONFIG_KEYS} = 'cgit.* gitweb.* git-grep-exporter.*'; push(@{$RC{ENABLE}}, 'symbolic-ref'); # not working for some reason? still getting `FATAL: git config 'gitweb.description' not allowed` if gitweb.* is omitted in GIT_CONFIG_KEYS # push( @{$RC{ENABLE}}, 'cgit' ); # update description files instead of gitweb.description config ''; }; }; }