summaryrefslogtreecommitdiffstats
path: root/krebs/2configs/repo-sync.nix
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2017-07-23 10:23:40 +0200
committermakefu <github@syntax-fehler.de>2017-07-23 10:23:40 +0200
commit3ee48434e3282ccd2b6ad83dd6c0d6552a54b71d (patch)
tree6c9c0cc04db334cbff93e97fd2f4b0702fdfd1b4 /krebs/2configs/repo-sync.nix
parent20d5077ba6f67ea0b73345248f048eafda6548e4 (diff)
parent54a594dc474255b24bbff80bb6be28e6a1a523d4 (diff)
Merge branch 'master' of prism:stockholm
Diffstat (limited to 'krebs/2configs/repo-sync.nix')
-rw-r--r--krebs/2configs/repo-sync.nix91
1 files changed, 70 insertions, 21 deletions
diff --git a/krebs/2configs/repo-sync.nix b/krebs/2configs/repo-sync.nix
index 637a26e3c..157a30e69 100644
--- a/krebs/2configs/repo-sync.nix
+++ b/krebs/2configs/repo-sync.nix
@@ -1,31 +1,80 @@
{ config, lib, pkgs, ... }:
-with lib;
-{
- krebs.repo-sync = let
- # TODO addMirrorURL function
- mirror = "git@wolf:stockholm-mirror";
- in {
- enable = true;
- repos.stockholm = {
- branches = {
- makefu = {
- origin.url = http://cgit.gum/stockholm ;
- mirror.url = mirror;
+with import <stockholm/lib>;
+
+let
+ mirror = "git@${config.networking.hostName}:";
+
+ defineRepo = name: announce: let
+ repo = {
+ public = true;
+ name = mkDefault "${name}";
+ cgit.desc = mkDefault "mirror for ${name}";
+ cgit.section = mkDefault "mirror";
+ hooks = mkIf announce (mkDefault {
+ post-receive = pkgs.git-hooks.irc-announce {
+ nick = config.networking.hostName;
+ verbose = false;
+ channel = "#retiolum";
+ server = "ni.r";
+ branches = [ "newest" ];
};
- tv = {
- origin.url = http://cgit.ni.r/stockholm;
- mirror.url = mirror;
+ });
+ };
+ in {
+ rules = with git; singleton {
+ user = with config.krebs.users; [
+ config.krebs.users."${config.networking.hostName}-repo-sync"
+ ];
+ repo = [ repo ];
+ perm = push ''refs/*'' [ non-fast-forward create delete merge ];
+ };
+ repos."${name}" = repo;
+ };
+
+ sync-retiolum = name:
+ {
+ krebs.repo-sync.repos.${name} = {
+ branches = {
+ makefu = {
+ origin.url = "http://cgit.gum/${name}";
+ mirror.url = "${mirror}${name}";
+ };
+ tv = {
+ origin.url = "http://cgit.ni.r/${name}";
+ mirror.url = "${mirror}${name}";
+ };
+ nin = {
+ origin.url = "http://cgit.onondaga.r/${name}";
+ mirror.url = "${mirror}${name}";
+ };
+ lassulus = {
+ origin.url = "http://cgit.lassul.us/${name}";
+ mirror.url = "${mirror}${name}";
+ };
};
- lassulus = {
- origin.url = http://cgit.prism/stockholm ;
- mirror.url = mirror;
+ latest = {
+ url = "${mirror}${name}";
+ ref = "heads/newest";
};
};
- latest = {
- url = mirror;
- ref = "heads/master";
+ krebs.git = defineRepo name true;
+ };
+
+in {
+ krebs.repo-sync = {
+ enable = true;
+ };
+ krebs.git = {
+ enable = mkDefault true;
+ cgit = {
+ settings = {
+ root-title = "Shared Repos";
+ root-desc = "keep on krebsing";
};
};
};
+ imports = [
+ (sync-retiolum "stockholm")
+ ];
}