summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlassulus <lass@aidsballs.de>2016-06-24 15:32:33 +0200
committerlassulus <lass@aidsballs.de>2016-06-24 15:32:33 +0200
commit7adf05999a11c4be6031f908fd9f1fec24bedf90 (patch)
treebb8b4333b4ba8f503cd9ed2baec9850a3e43e664
parent4cc64a460e2246a29cd9290a1816f4c612b88965 (diff)
l 2: add repo-sync
-rw-r--r--lass/2configs/repo-sync.nix68
1 files changed, 68 insertions, 0 deletions
diff --git a/lass/2configs/repo-sync.nix b/lass/2configs/repo-sync.nix
new file mode 100644
index 000000000..bb5123a02
--- /dev/null
+++ b/lass/2configs/repo-sync.nix
@@ -0,0 +1,68 @@
+{ config, lib, pkgs, ... }:
+
+with config.krebs.lib;
+
+let
+ mirror = "git@${config.networking.hostName}:";
+
+ sync = name: let
+ repo = {
+ public = true;
+ name = mkDefault "${name}";
+ cgit.desc = mkDefault "mirror for all ${name} branches";
+ hooks = mkDefault {
+ post-receive = pkgs.git-hooks.irc-announce {
+ nick = config.networking.hostName;
+ verbose = false;
+ channel = "#retiolum";
+ server = "cd.retiolum";
+ };
+ };
+ };
+ in {
+ krebs.repo-sync.repos.${name} = {
+ makefu = {
+ origin.url = "http://cgit.gum/${name}";
+ mirror.url = "${mirror}${name}";
+ };
+ tv = {
+ origin.url = "http://cgit.cd/${name}";
+ mirror.url = "${mirror}${name}";
+ };
+ lassulus = {
+ origin.url = "http://cgit.prism/${name}";
+ mirror.url = "${mirror}${name}";
+ };
+ "@latest" = {
+ mirror.url = "${mirror}${name}";
+ mirror.ref = "heads/newest";
+ };
+ };
+ krebs.git = {
+ rules = with git; singleton {
+ user = [ config.krebs.users."${config.networking.hostName}-repo-sync" ];
+ repo = [ repo ];
+ perm = push ''refs/*'' [ non-fast-forward create delete merge ];
+ };
+ repos."${name}" = repo;
+ };
+ };
+
+in {
+ krebs.repo-sync = {
+ enable = true;
+ privateKeyFile = toString <secrets/repo-sync.key>;
+ };
+ imports = [
+ (sync "stockholm")
+ (sync "realwallpaper")
+ (sync "xmonad-stockholm")
+ (sync "newsbot-js")
+ (sync "go")
+ (sync "wai-middleware-time")
+ (sync "web-routes-wai-custom")
+ (sync "much")
+ (sync "painload")
+ ];
+}
+