]> Untitled Git - awful.systems.git/blob - git/default.nix
Initial commit
[awful.systems.git] / git / default.nix
1 { config, lib, pkgs, ... }:
2
3 let
4   new-repo = pkgs.writeShellScriptBin "new-repo" ''
5 mkdir -p ${config.users.extraUsers.git.home}/repos/''${1}.git
6 ${pkgs.git}/bin/git init --bare ${config.users.extraUsers.git.home}/repos/''${1}.git/
7 chown -R git:git ${config.users.extraUsers.git.home}/repos
8 '';
9   in
10 {
11   users.extraUsers.git = {
12     uid = 402;
13     isSystemUser = true;
14     home = "/home/git";
15     createHome = true;
16     group = "git";
17     homeMode = "770";
18     shell = "${pkgs.git}/bin/git-shell";
19   };
20
21   users.extraGroups.git = { gid = 402; };
22
23   services.nginx.gitweb = {
24     enable = true;
25     location = "/git";
26     group = "git";
27     virtualHost = "awful.systems";
28   };
29
30   services.gitweb = {
31     gitwebTheme = true;
32     projectroot = "/home/git/repos";
33   };
34
35   environment.systemPackages = [ new-repo ];
36 }