diff options
-rw-r--r-- | makefu/1systems/x.nix | 2 | ||||
-rw-r--r-- | makefu/2configs/default.nix | 2 | ||||
-rw-r--r-- | makefu/2configs/deployment/dirctator.nix | 29 | ||||
-rw-r--r-- | makefu/2configs/git/brain-retiolum.nix | 57 |
4 files changed, 88 insertions, 2 deletions
diff --git a/makefu/1systems/x.nix b/makefu/1systems/x.nix index d1503c8d7..ee3a7bb1b 100644 --- a/makefu/1systems/x.nix +++ b/makefu/1systems/x.nix @@ -55,7 +55,7 @@ with import <stockholm/lib>; ../2configs/rad1o.nix # services - #../2configs/git/brain-retiolum.nix + ../2configs/git/brain-retiolum.nix ../2configs/tor.nix ../2configs/steam.nix # ../2configs/buildbot-standalone.nix diff --git a/makefu/2configs/default.nix b/makefu/2configs/default.nix index 0d61e8dee..8038142ac 100644 --- a/makefu/2configs/default.nix +++ b/makefu/2configs/default.nix @@ -22,7 +22,7 @@ with import <stockholm/lib>; user = config.krebs.users.makefu; source = let inherit (config.krebs.build) host user; - ref = "a772c3a"; # unstable @ 2017-05-09 + graceful requests2 + ref = "f6a2c46"; # unstable @ 2017-06-18 + graceful requests2 in { nixpkgs = if config.makefu.full-populate || (getEnv "dummy_secrets" == "true") then { diff --git a/makefu/2configs/deployment/dirctator.nix b/makefu/2configs/deployment/dirctator.nix new file mode 100644 index 000000000..14d5918cb --- /dev/null +++ b/makefu/2configs/deployment/dirctator.nix @@ -0,0 +1,29 @@ +{ pkgs, lib, ... }: + +with lib; +let + port = 18872; + runit = pkgs.writeDash "runit" '' + set -xeuf + export PULSE_COOKIE=/var/run/pulse/.config/pulse/cookie + echo "$@" | sed 's/^dirctator://' | ${pkgs.espeak}/bin/espeak -v mb-de7 2>&1 | tee -a /tmp/speak + ''; +in { + services.logstash = { + enable = true; + inputConfig = '' + irc { + channels => [ "#krebs", "#afra" ] + host => "irc.freenode.net" + nick => "dirctator" + } + ''; + filterConfig = '' + ''; + outputConfig = '' + stdout { codec => rubydebug } + exec { command => "${runit} '%{message}" } + ''; + plugins = [ ]; + }; +} diff --git a/makefu/2configs/git/brain-retiolum.nix b/makefu/2configs/git/brain-retiolum.nix new file mode 100644 index 000000000..18275e3df --- /dev/null +++ b/makefu/2configs/git/brain-retiolum.nix @@ -0,0 +1,57 @@ +{ config, lib, pkgs, ... }: +# TODO: remove tv lib :) +with import <stockholm/lib>; +let + + repos = krebs-repos; + rules = concatMap krebs-rules (attrValues krebs-repos); + + krebs-repos = mapAttrs make-krebs-repo { + brain = { }; + }; + + + make-krebs-repo = with git; name: { cgit ? {}, ... }: { + inherit cgit name; + public = false; + hooks = { + post-receive = pkgs.git-hooks.irc-announce { + nick = config.networking.hostName; + verbose = true; + channel = "#retiolum"; + # TODO remove the hardcoded hostname + server = "ni.r"; + }; + }; + }; + + + + # TODO: get the list of all krebsministers + krebsminister = with config.krebs.users; [ lass tv ]; + krebs-rules = repo: + set-owners repo [ config.krebs.users.makefu ] ++ set-ro-access repo krebsminister; + + set-ro-access = with git; repo: user: + optional repo.public { + inherit user; + repo = [ repo ]; + perm = fetch; + }; + + set-owners = with git;repo: user: + singleton { + inherit user; + repo = [ repo ]; + perm = push "refs/*" [ non-fast-forward create delete merge ]; + }; + +in { + krebs.git = { + enable = true; + cgit = { + enable = false; + }; + inherit repos rules; + }; +} |