Merge remote-tracking branch 'cd/master'

Conflicts:
	3modules/tv/retiolum.nix
This commit is contained in:
makefu 2015-07-24 10:57:53 +02:00
commit 92ad08a34e
3 changed files with 80 additions and 88 deletions

View File

@ -168,7 +168,7 @@ in
# then we have to update the package # then we have to update the package
# ref src/nixpkgs/pkgs/tools/admin/sec/default.nix # ref src/nixpkgs/pkgs/tools/admin/sec/default.nix
http://simple-evcorr.sourceforge.net/ https://api.github.com/repos/simple-evcorr/sec/tags
# ref src/nixpkgs/pkgs/tools/networking/urlwatch/default.nix # ref src/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
https://thp.io/2008/urlwatch/ https://thp.io/2008/urlwatch/

View File

@ -1,87 +1,80 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with import ../../4lib/tv { inherit lib pkgs; };
with lib;
let let
inherit (builtins) map readFile;
inherit (lib) concatMap listToAttrs;
# TODO lib should already include our stuff
inherit (import ../../4lib/tv { inherit lib pkgs; }) addNames git;
public-git-repos = [ out = {
(public "cgserver") imports = [ ../../3modules/tv/git.nix ];
(public "crude-mail-setup") tv.git = {
(public "dot-xmonad") enable = true;
(public "hack") root-title = "public repositories at ${config.tv.identity.self.name}";
(public "load-env") root-desc = "keep calm and engage";
(public "make-snapshot") inherit repos rules users;
(public "mime")
(public "much")
(public "nixos-infest")
(public "nixpkgs")
(public "painload")
(public "quipper")
(public "regfish")
(public' {
name = "shitment";
desc = "turn all the computers into one computer!";
})
(public "wai-middleware-time")
(public "web-routes-wai-custom")
(public "xintmap")
];
users = addNames {
tv = { pubkey = readFile ../../Zpubkeys/tv_wu.ssh.pub; };
lass = { pubkey = readFile ../../Zpubkeys/lass.ssh.pub; };
uriel = { pubkey = readFile ../../Zpubkeys/uriel.ssh.pub; };
makefu = { pubkey = readFile ../../Zpubkeys/makefu.ssh.pub; };
};
repos = listToAttrs (map ({ repo, ... }: { name = repo.name; value = repo; }) public-git-repos);
rules = concatMap ({ rules, ... }: rules) public-git-repos;
public' = { name, desc }:
let
x = public name;
in
x // { repo = x.repo // { inherit desc; }; };
public = repo-name:
rec {
repo = {
name = repo-name;
hooks = {
post-receive = git.irc-announce {
nick = config.networking.hostName; # TODO make this the default
channel = "#retiolum";
server = "cd.retiolum";
};
};
public = true;
};
rules = with git; with users; [
{ user = tv;
repo = [ repo ];
perm = push "refs/*" [ non-fast-forward create delete merge ];
}
{ user = [ lass makefu uriel ];
repo = [ repo ];
perm = fetch;
}
];
}; };
in
{
imports = [
../../3modules/tv/git.nix
];
tv.git = {
enable = true;
inherit repos rules users;
root-title = "public repositories at ${config.networking.hostName}";
root-desc = "keep calm and engage";
}; };
}
repos = public-repos;
rules = concatMap make-rules (attrValues repos);
public-repos = mapAttrs make-public-repo {
cgserver = {};
crude-mail-setup = {};
dot-xmonad = {};
hack = {};
load-env = {};
make-snapshot = {};
mime = {};
much = {};
nixos-infest = {};
nixpkgs = {};
painload = {};
quipper = {};
regfish = {};
stockholm = {
desc = "take all the computers hostage, they'll love you!";
};
wai-middleware-time = {};
web-routes-wai-custom = {};
xintmap = {};
};
# TODO move users to separate module
users = mapAttrs make-user {
tv = ../../Zpubkeys/tv_wu.ssh.pub;
lass = ../../Zpubkeys/lass.ssh.pub;
uriel = ../../Zpubkeys/uriel.ssh.pub;
makefu = ../../Zpubkeys/makefu.ssh.pub;
};
make-public-repo = name: { desc ? null, ... }: {
inherit name desc;
public = true;
hooks = {
post-receive = git.irc-announce {
# TODO make nick = config.tv.identity.self.name the default
nick = config.tv.identity.self.name;
channel = "#retiolum";
server = "cd.retiolum";
};
};
};
make-rules =
with git // users;
repo:
singleton {
user = tv;
repo = [ repo ];
perm = push "refs/*" [ non-fast-forward create delete merge ];
} ++
optional repo.public {
user = [ lass makefu uriel ];
repo = [ repo ];
perm = fetch;
};
make-user = name: pubkey-file: {
inherit name;
pubkey = readFile pubkey-file;
};
in out

View File

@ -83,11 +83,10 @@ let
type = types.listOf types.str; type = types.listOf types.str;
default = [ "fastpoke" "pigstarter" "kheurop" ]; default = [ "fastpoke" "pigstarter" "kheurop" ];
description = '' description = ''
The list of hosts in the network which the client will try to connect to. The list of hosts in the network which the client will try to connect
These hosts should have an 'Address' configured which points to a routeable to. These hosts should have an 'Address' configured which points to a
IPv4 or IPv6 address routeable IPv4 or IPv6 address.
'' '';
;
}; };
}; };