diff options
Diffstat (limited to 'krebs')
| -rw-r--r-- | krebs/1systems/wolf/config.nix | 57 | ||||
| -rw-r--r-- | krebs/2configs/shack/muell_caller.nix | 4 | ||||
| -rw-r--r-- | krebs/3modules/git.nix | 11 | ||||
| -rw-r--r-- | krebs/3modules/lass/default.nix | 115 | ||||
| -rw-r--r-- | krebs/3modules/lass/pgp/helios.pgp | 51 | ||||
| -rw-r--r-- | krebs/3modules/lass/ssh/helios.rsa | 1 | ||||
| -rw-r--r-- | krebs/3modules/tv/default.nix | 46 | ||||
| -rw-r--r-- | krebs/5pkgs/simple/git-preview/default.nix | 15 | ||||
| -rw-r--r-- | krebs/5pkgs/simple/weechat/default.nix | 80 | ||||
| -rw-r--r-- | krebs/5pkgs/simple/withGetopt.nix | 118 | 
10 files changed, 370 insertions, 128 deletions
| diff --git a/krebs/1systems/wolf/config.nix b/krebs/1systems/wolf/config.nix index 91aabb716..21ae20ea0 100644 --- a/krebs/1systems/wolf/config.nix +++ b/krebs/1systems/wolf/config.nix @@ -1,6 +1,7 @@  { config, pkgs, ... }:  let    shack-ip = config.krebs.build.host.nets.shack.ip4.addr; +  influx-host = "127.0.0.1";  in  {    imports = [ @@ -23,6 +24,58 @@ in      <stockholm/krebs/2configs/shack/muell_caller.nix>      <stockholm/krebs/2configs/shack/radioactive.nix>      <stockholm/krebs/2configs/shack/share.nix> +    { +      systemd.services.telegraf.path = [ pkgs.net_snmp ]; # for snmptranslate +      #systemd.services.telegraf.environment = { +      #  "MIBDIRS" : ""; # extra mibs like ADSL +      #}; +      services.telegraf = { +        enable = true; +        extraConfig = { +          inputs = { +            snmp = { +              agents = [ "10.0.1.3:161" ]; +              version = 2; +              community = "shack"; +              name = "snmp"; +              field = [ +                { +                  name = "hostname"; +                  oid = "RFC1213-MIB::sysName.0"; +                  is_tag = true; +                } +                { +                  name = "load-percent"; #cisco +                  oid = ".1.3.6.1.4.1.9.9.109.1.1.1.1.4.9"; +                } +                { +                  name = "uptime"; +                  oid = "DISMAN-EVENT-MIB::sysUpTimeInstance"; +                } +              ]; +              table = [{ +                name = "snmp"; +                inherit_tags = [ "hostname" ]; +                oid = "IF-MIB::ifXTable"; +                field = [{ +                  name = "ifName"; +                  oid = "IF-MIB::ifName"; +                  is_tag = true; +                }]; +              }]; +            }; +          }; +          outputs = { +            influxdb = { +              urls = [ "http://${influx-host}:8086" ]; +              database = "telegraf"; +              write_consistency = "any"; +              timeout = "5s"; +            }; +          }; +        }; +      }; +    }    ];    # use your own binary cache, fallback use cache.nixos.org (which is used by @@ -86,6 +139,9 @@ in    boot.loader.grub.version = 2;    boot.loader.grub.device = "/dev/vda"; +  # without it `/nix/store` is not added grub paths +  boot.loader.grub.copyKernels = true; +    fileSystems."/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; };    swapDevices = [ @@ -100,6 +156,7 @@ in    users.extraUsers.root.openssh.authorizedKeys.keys = [      config.krebs.users.ulrich.pubkey      config.krebs.users.makefu-omo.pubkey +    "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDb9NPa2Hf51afcG1H13UPbE5E02J8aC9a1sGCRls592wAVlQbmojYR1jWDPA2m32Bsyv0ztqi81zDyndWWZPQVJVBk00VjYBcgk6D5ifqoAuWLzfuHJPWZGOvBf/U74/LNFNUkj1ywjneK7HYTRPXrRBBfBSQNmQzkvue7s599L2vdueZKyjNsMpx2m6nm2SchaMuDskSQut/168JgU1l4M8BeT68Bo4WdelhBYnhSI1a59FGkgdu2SCjyighLQRy2sOH3ksnkHWENPkA+wwQOlKl7R3DsEybrNd4NU9FSwFDyDmdhfv5gJp8UGSFdjAwx43+8zM5t5ruZ25J0LnVb0PuTuRA00UsW83MkLxFpDQLrQV08tlsY6iGrqxP67C3VJ6t4v6oTp7/vaRLhEFc1PhOLh+sZ18o8MLO+e2rGmHGHQnSKfBOLUvDMGa4jb01XBGjdnIXLOkVo79YR5jZn7jJb2gTZ95OD6bWSDADoURSuwuLa7kh4ti1ItAKuhkIvbuky3rRVvQEc92kJ6aNUswIUXJa0K2ibbIY6ycKAA3Ljksl3Mm9KzOn6yc/i/lSF+SOrTGhabPJigKkIoqKIwnV5IU3gkfsxPQJOBMPqHDGAOeYQe3WpWedEPYuhQEczw4exMb9TkNE96F71PzuQPJDl5sPAWyPLeMKpy5XbfRiF2by4nxN3ZIQvjtoyVkjNV+qM0q0yKBzLxuRAEQOZ2yCEaBudZQkQiwHD97H2vu4SRQ/2aOie1XiOnmdbQRDZSO3BsoDK569K1w+gDfSnqY7zVUMj6tw+uKx6Gstck5lbvYMtdWKsfPv/pDM8eyIVFLL93dKTX+ertcQj6xDwLfOiNubE5ayFXhYkjwImV6NgfBuq+3hLK0URP2rPlOZbbZTQ0WlKD6CCRZPMSZCU9oD2zYfqpvRArBUcdkAwGePezORkfJQLE6mYEJp6pdFkJ/IeFLbO6M0lZVlfnpzAC9kjjkMCRofZUETcFSppyTImCbgo3+ok59/PkNU5oavBXyW80ue2tWHr08HX/QALNte3UITmIIlU6SFMCPMWJqadK1eDPWfJ4H4iDXRNn3D5wqN++iMloKvpaj0wieqXLY4+YfvNTNr177OU48GEWW8DnoEkbpwsCbjPxznGDQhdDqdYyMY/fDgRQReKITvKYGHRzesGysw5cKsp9LEfXD0R6WE2TeiiENla5AWzTgXJB0AyZEcOiIfqOgT9Nr9S8q5gc/BdA7P+jhGGJgEHhV3dVlfIZ7pmZc27Yu7UTQ0lbAKWqcMSTOdne+QL6ILzbvLrQwdvax4tQdm5opfU16SrOox1AMwAbkdq84z6uJqYVx3cUXfMJgTyDNrVv3or root@plattenschwein" # for backup    ];    time.timeZone = "Europe/Berlin"; diff --git a/krebs/2configs/shack/muell_caller.nix b/krebs/2configs/shack/muell_caller.nix index 2d8d78e33..7e8d278f6 100644 --- a/krebs/2configs/shack/muell_caller.nix +++ b/krebs/2configs/shack/muell_caller.nix @@ -6,8 +6,8 @@ let      name = "muell_caller-2017-06-01";      src = pkgs.fetchgit {        url = "https://github.com/shackspace/muell_caller/"; -      rev = "bbd4009"; -      sha256 = "1bfnfl2vdh0p5wzyz5p48qh04vvsg2445avg86fzhzragx25fqv0"; +      rev = "ee4e499"; +      sha256 = "0q1v07q633sbqg4wkgf0zya2bnqrikpyjhzp05iwn2vcs8rvsi3k";      };      buildInputs = [        (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [ diff --git a/krebs/3modules/git.nix b/krebs/3modules/git.nix index 93211d9d4..610c20bb4 100644 --- a/krebs/3modules/git.nix +++ b/krebs/3modules/git.nix @@ -186,6 +186,17 @@ let      };      repo = types.submodule ({ config, ... }: {        options = { +        admins = mkOption { +          type = types.listOf types.user; +          default = []; +          description = '' +            List of users that should be able to do everything with this repo. + +            This option is currently not used by krebs.git but instead can be +            used to create rules.  See e.g. <stockholm/lass/2configs/git.nix> for +            an example. +          ''; +        };          cgit = {            desc = mkOption {              type = types.nullOr types.str; diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix index 4e2d6df99..ca3c8b45b 100644 --- a/krebs/3modules/lass/default.nix +++ b/krebs/3modules/lass/default.nix @@ -34,6 +34,7 @@ with import <stockholm/lib>;              HwgPw5pstabyrsDWXybSYUb+8LcZf+unGwIDAQAB              -----END RSA PUBLIC KEY-----            ''; +          tinc.port = 993;          };        };        ssh.privkey.path = <secrets/ssh.id_ed25519>; @@ -294,6 +295,37 @@ with import <stockholm/lib>;        ssh.privkey.path = <secrets/ssh.id_ed25519>;        ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEB/MmASvx3i09DY1xFVM5jOhZRZA8rMRqtf8bCIkC+t";      }; +    helios = { +      cores = 8; +      nets = { +        retiolum = { +          ip4.addr = "10.243.133.117"; +          ip6.addr = "42:0:0:0:0:0:3:7105"; +          aliases = [ +            "helios.r" +            "cgit.helios.r" +          ]; +          tinc.pubkey = '' +            -----BEGIN RSA PUBLIC KEY----- +            MIICCgKCAgEAp+SRmP5MoCSYInx4Dm5MLZzNyXVgfo/CDoeUlUT35X0yE7WHGWsG +            wHPCu+3RWfBUjuqNdb0qiGtRi3Q/LwznwBROPOX8gMXia/DgCLbIjn5Rx081pTIo +            3epbUCFtNgyDWg8IHF87ZnVBXTYAy5g4tz9u8kw82D8mR18o595TuZ9t5pDc/Kvi +            fPHZenT6cd6FtL9uankX/jan1PRP9xTrhpE8dAQ6g+7XH7knMK3cno/Ztis5YzHt +            Ith0bsIjk5of7hhITj0MXtTikjDqWxkpF5mfOK1cG/rC1goTmB9AfcENUBnu9iAM +            I/alzqk3CEczznLyaOckfx2fRuar912LAdiJ5v7VPztfvN1p3gIxq5M0Rgkq+98B +            H/s32xNRBPvqoIleKnhwE9gfrCLaAVqpaMkgKRvgsTkSDNYNhh4smQ3eAKKwwDH/ +            QG3sfP8xyNyDFhBtCiDGkf9hNqBBMaKjZoh8DasZNtcfOop3fGw7jmUUbB6cG8cp +            +EfYbcb5mVpmrIyXgOTwwYcp7tn+zkd4Wa8C9Q98eFTs0HGVGxGX9Hj6PM/kXK4C +            aIqIQVNpnJ/9cOwT8JFIriG1MWTOXbamUusKTLs8SRp3ZkyM7XUEcLL5HMh09rUw +            rzEAmE7TywXVhd7j2IaEy+bx2dfGQH2bFoh6Drm6Olo+ySi1utB5dGkCAwEAAQ== +            -----END RSA PUBLIC KEY----- +          ''; +        }; +      }; +      secure = true; +      ssh.privkey.path = <secrets/ssh.id_ed25519>; +      ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIqpx9jJnn4QMGO8BOrGOLRN1rgpIkR14sQb8S+otWEL"; +    };      iso = {        ci = false;        cores = 1; @@ -349,6 +381,85 @@ with import <stockholm/lib>;          };        };      }; +    eddie = { +      ci = false; +      external = true; +      nets = { +        retiolum = { +          ip4.addr = "10.243.29.170"; +          ip6.addr = "42:4992:6a6d:700::1"; +          aliases = [ "eddie.r" ]; +          tinc.pubkey = '' +            -----BEGIN RSA PUBLIC KEY----- +            MIICCgKCAgEAuRQphRlSIC/aqRTfvStPdJOJCx1ACeFIDEjRdgoxuu32qoBl7i6d +            j7Voh+Msditf2a5+f0fVsNDaPnjPGfk0NkZBjmn+RZQDRXk0krpTNj2Vb6W5quTm +            3yrjJMFJR9CU5khfppc47X+ir8bjn7RusWTFNEuDvUswHmRmnJHLS3Y+utOaRbCF +            2hxpyxCn423gpsaBfORPEK8X90nPbuNpFDugWPnC+R45TpNmIf4qyKvfhd9OKrua +            KNanGHG30xhBW/DclUwwWi8D44d94xFnIRVcG1O+Uto93WoUWZn90lI1qywSj5Aq +            iWstBK4tc7VwvAj0UzPlaRYYPfFjOEkPQzj8xC6l/leJcgxkup252uo6m1njMx3t +            6QWMgevjqosY22OZReZfIwb14aDWFKLTWs30J+zmWK4TjlRITdsOEKxlpODMbJAD +            kfSoPwuwkWIzFhNOrFiD/NtKaRYmV8bTBCT3a9cvvObshJx13BP+IUFzBS1N1n/u +            hJWYH5WFsQZn/8rHDwZGkS1zKPEaNoydjqCZNyJpJ5nhggyl6gpuD7wpXM/8tFay +            pAjRP40+qRQLUWXmswV0hsZTOX1tvZs4f68y3WJ+GwCWw9HvvwmzYes5ayJrPsbJ +            lyK301Jb42wGEsVWxu3Eo/PLtp8OdD+Wdh6o/ELcc0k/YCUGFMujUM8CAwEAAQ== +            -----END RSA PUBLIC KEY----- +          ''; +        }; +      }; +    }; +    borg = { +      ci = false; +      external = true; +      nets = { +        retiolum = { +          ip4.addr = "10.243.29.171"; +          ip6.addr = "42:4992:6a6d:700::2"; +          aliases = [ "borg.r" ]; +          tinc.pubkey = '' +            -----BEGIN PUBLIC KEY----- +            MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0bHZApTM7Hl4qqNakSwq +            bt7zJoTVK9ePoC3Mue1VmJ1mCKMaxKdzlO31kPeHtkilAzgyIJdgikyKFlApGsQL +            aIuU9h55X7TbikoDD6ghbSrAe3Pgc+sJ3OZ7wO7Qb8CKgJvEbkk/u68YiJgyTjYD +            HNjIQzlsGdpoSke9vwC8qWanfgN7c2MMGtakqfXDjYjCgp7O43i+SMupkMSXIXMA +            5XUFh/vVp6xgPxBofcw0uQIyZ5v4PPFjnGPm4rnMbFzbhubntHjDadwGd5Niyw4O +            zNNKNchTLfNiuNGqTZeYd0kJ5fNMKykhpSs+ou34MvexvpuyPlFuotnPXN/nOMml +            3nwiqzthzPuBZRLswxT0WvlA8wlbeTOKJ0wTIR4dDuAF+euDtoNocVEN5PJNc7yN +            fmwAV6geESoJbZQMSCtAp1NioaBlRPp1pFfoM/GotHywuFrTIxyoIBiYhkpWyQvq +            WYw5j13IKqkL7jDchhoBmcardmh+AP5bL3uQ84BgaYNwFzHp04qIRrrdpF0eMaHB +            /8zaqsNLn4/zQJB5ffkelwoIqfvLPQeCMLzHGHgP5xUnWgmZZGiiDLvhuaMeNq4U +            EpCKoTL178sPOgNfHfd8mEqx0qKYuPrNQEdlpa5xOZqwx56pfYpGWY+KtF2FHLhS +            iO64GCJqCi1MKBYx/NhaxKMCAwEAAQ== +            -----END PUBLIC KEY----- +          ''; +        }; +      }; +    }; +    inspector = { +      ci = false; +      external = true; +      nets = { +        retiolum = { +          ip4.addr = "10.243.29.172"; +          ip6.addr = "42:4992:6a6d:800::1"; +          aliases = [ "inspector.r" ]; +          tinc.pubkey = '' +            -----BEGIN RSA PUBLIC KEY----- +            MIICCgKCAgEAr3l/u7qcxmFa2hUICU3oPDhB2ij2R3lKHyjSsVFVLNfl6TpOdppG +            EDXOapeXL0s+PfBRHdRI3v/dibj4PG9eyKmFxsUJ2gRz4ghb1UE23aQ3pkr3x8sZ +            7GR+nJYATYf+jolFF9O1x+f0Uo5xaYWkGOMH8wVVzm6+kcsZOYuTEbJAsbTRZywF +            m1MdRfk54hLiDsj2rjGRZIR+ZfUKVs2MTWOLCpBAHLJK+r3HfUiR2nAgeNkJCFLw +            WIir1ftDIViT3Ly6b7enaOkVZ695FNYdPWFZCE4AJI0s9wsbMClzUqCl+0mUkumd +            eRXgWXkmvBsxR4GECnxUhxs6U8Wh3kbQavvemt4vcIKNhkw32+toYc1AFK/n4G03 +            OUJBbRqgJYx9wIvo8PEu4DTTdsPlQZnMwiaKsn+Gi4Ap6JAnG/iLN8sChoQf7Dau +            ARZA3sf9CkKx5sZ+9dVrLbzGynKE18Z/ysvf1BLd/rVVOps1B/YRBxDwPj8MZJ0x +            B7b0j+hRVV5palp3RRdcExuWaBrMQQGsXwLUZOFHJJaZUHF9XRdy+5XVJdNOArkG +            q1+yGhosL1DLTQE/VwCxmBHyYTr3L7yZ2lSaeWdIeYvcRvouDROUjREVFrQjdqwj +            7vIP1cvDxSSqA07h/xEC4YZKACBYc/PI2mqYK5dvAUG3mGrEsjHktPUCAwEAAQ== +            -----END RSA PUBLIC KEY----- +          ''; +        }; +      }; +    };    };    users = {      lass = { @@ -356,6 +467,10 @@ with import <stockholm/lib>;        pubkey = builtins.readFile ./ssh/mors.rsa;        pgp.pubkeys.default = builtins.readFile ./pgp/mors.pgp;      }; +    lass-helios = { +      mail = "lass@helios.r"; +      pubkey = builtins.readFile ./ssh/helios.rsa; +    };      lass-uriel = {        mail = "lass@uriel.r";        pubkey = builtins.readFile ./ssh/uriel.rsa; diff --git a/krebs/3modules/lass/pgp/helios.pgp b/krebs/3modules/lass/pgp/helios.pgp new file mode 100644 index 000000000..dc6d07d6b --- /dev/null +++ b/krebs/3modules/lass/pgp/helios.pgp @@ -0,0 +1,51 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +Du4S2e/am91kQGaz490BV9XNw4I70e4dQQ== +=gkzg +-----END PGP PUBLIC KEY BLOCK----- diff --git a/krebs/3modules/lass/ssh/helios.rsa b/krebs/3modules/lass/ssh/helios.rsa new file mode 100644 index 000000000..58f81726c --- /dev/null +++ b/krebs/3modules/lass/ssh/helios.rsa @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEZgGZE0z5+0A42GHI2VYrN9Ra60EwlKqARZUi9e0pbiQxwKi42Y3+Jy2UIAB9rUW51Pw0K6L2FzHZyk9w4fMWjAB+OSaGi8CViGOrBmP8Xm0TSd6a725RSOKTH1jv4u54W6+VQcZpe4RepsuasvN4Rd3FYz1O0ffiroPYS0Hs7ui3HG5rZZsz+FArJ/s2mL525P9VQwMlCAdrepWXgGSPSa/ogmhMCSRttV5R0WCnvXYA4aq45scxjxIWXu/Y/FggslSpRGEnRChHiua5kPWqREC1eNbMOjYJc7OxDIZjzcwHcDHH3U1oIBEjNY8UqMFy3t87cm0BTH9yA6qQnkexCmbRGA0mnAJ1XskgL6KcZuYw+zRo6zVmnZCgRyheenBJhQy/28ZDSwCDBOayl6tAbWivesUZb0/nqucvbdRxTDd6nbSH8q8Cp1qZvP1yrhZ9X2m4Rm66UenHOPOEiyOoVQgfYb2EFHsYVN62shGcfaaL8g4rjUXsUJEheGX5ll5MOMSclUhI8Zk31APq/xuLGGIn+tipjOSX2OVZrSE+KkgitMxOOF1kx33IQGnBKQD8K/a9vVmpTrTAnfXR5oJrXp+XRZ3viXr0rUkG5KfS/zjL8ZC8ckeSkX75BLbPbimUa6TfA/lddipb76zOOOREiD4Sw+MkGDh5xnzwxMY05fjOUmk/v++WcOTTNyrknygdaC8Qx0Gv4Wxmcd+LzmIc5wZZjenwYhp4KpR55EIP966uBUcD+HlkHZnNNZUzOJA8NE+oPQbaM3qCuThe9q9hVYt08/rZ9ANwgb/ChCwEOYLNnofdgrvDb91qenwEUiE9wy79Dwgqh2SRAMN4ZTxRrVjw3potBMRuNc5HMDDXbKfGF1T6O+vBPpcQ8x+rztBDpF/lqjGqoCqyFNG/VnFHFZ5kjLkLmx6S69iRL7wg/KI1NA14tdSLJZ2qDqo5n8rbnGeAWTQB8ZgzhPO39fyOYGCdTJ8e2dIDEw8SUWaVsTnkc/PHOcGAMt2LrL6USszrLSQgU4ediPBWJjX4jk2wxLRPyBz8Z2QLWrsxV0bh1CstIsbBh1p8jMXAKJ+UXqzRWGR5T6d7lensqM0/uWqzu++w6/whQQh9Hzs6GX8l+ELMn0szkRaM9dZpAz5p9HHdYkANwsIIe8CPznRvudQ0CPManTQsjR8GZ3RjGx002VUdbDh5xx7P9Efsa6m8kkNCbUNMSHjmvC9M2sR5ww2WsnvpGBCU8sNYf4y9QvKI1LIYkG1MObhEKHyf5wxFp25bwHyxPkHGULhJKM/MdDT42flddEJCTEwiCPVuaJsr7Adr6Oni4kzY+S7CiP7YArM0v2Vg9mgVmi11koF9hcZ6zyyKAWVviDRLVIA0/eY66T/FiSS/g12zW1keuhFipNEWyZdD/r8LwfDpInAAqN5g65dx6eoyoB6AZatEwwsnn6zcDP51B1q0TC9Y+TXK5TSBE50oFxa2SLu4Gj7YOi1AoRqKxSPVktE= lass@helios diff --git a/krebs/3modules/tv/default.nix b/krebs/3modules/tv/default.nix index 79fa27bad..e80becfa7 100644 --- a/krebs/3modules/tv/default.nix +++ b/krebs/3modules/tv/default.nix @@ -32,52 +32,6 @@ with import <stockholm/lib>;        ssh.privkey.path = <secrets/ssh.id_rsa>;        ssh.pubkey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDP9JS2Nyjx4Pn+/4MrFi1EvBBYVKkGm2Q4lhgaAiSuiGLol53OSsL2KIo01mbcSSBWow9QpQpn8KDoRnT2aMLDrdTFqL20ztDLOXmtrSsz3flgCjmW4f6uOaoZF0RNjAybd1coqwSJ7EINugwoqOsg1zzN2qeIGKYFvqFIKibYFAnQ8hcksmkvPdIO5O8CbdIiP9sZSrSDp0ZyLK2T0PML2jensVZOeqSPulQDFqLsbmavpVLkpDjdzzPRwbZWNB4++YeipbYNOkX4GR1EB4wMZ93IbBV7kpJtib2Zb2AnUf7UW37hxWBjILdstj9ClwNOQggn8kD9ub7YxBzH1dz0Xd8a0mPOAWIDJz9MypXgFRc3vdvPB/W1I4Se0CLbgOkORun9CkgijKr9oEY8JNt8HFd6viZcAaQxOyIm6PNHZTnHfdSc7bIBS2n3e3IZBv0fTd77knGLXg402aTuu2bm/kxsKivxsILXIaGbeXe4ceN3Fynr3FzSM2bUkzHb0mAHu1BQ9YaX0xzCwjVueA5nzGls7ODSFkXsiBfg2FvMN/sTLFca6tnwyqcnD6nujoiS5+BxjDWPgnZYqCaW3B/IkpTsRMsX6QrfhOFcsP8qlJ2Cp82orWoDK/D0vZ9pdzAc6PFGga0RofuJKY2yiq+SRZ7/e9E6VncIVCYZ1OfN0Q==";      }; -    cd = { -      ci = true; -      cores = 2; -      extraZones = { -        # TODO generate krebsco.de zone from nets and don't use extraZones at all -        "krebsco.de" = '' -          cd          60 IN A ${config.krebs.hosts.cd.nets.internet.ip4.addr} -        ''; -      }; -      nets = { -        internet = { -          ip4.addr = "45.62.237.203"; -          aliases = [ -            "cd.i" -            "cd.krebsco.de" -          ]; -          ssh.port = 11423; -        }; -        retiolum = { -          via = config.krebs.hosts.cd.nets.internet; -          ip4.addr = "10.243.113.222"; -          ip6.addr = "42:4522:25f8:36bb:8ccb:150:231a:2af3"; -          aliases = [ -            "cd.r" -            "cgit.cd.r" -          ]; -          tinc.pubkey = '' -            -----BEGIN RSA PUBLIC KEY----- -            MIICCgKCAgEAvmCBVNKT/Su4v9nl/Nm3STPo5QxWPg7xEkzIs3Oh39BS8+r6/7UQ -            rebib7mczb+ebZd+Rg2yFoGrWO8cmM0VcLy5bYRMK7in8XroLEjWecNNM4TRfNR4 -            e53+LhcPdkxo0A3/D+yiut+A2Mkqe+4VXDm/JhAiAYkZTn7jUtj00Atrc7CWW1gN -            sP3jIgv4+CGftdSYOB4dm699B7OD9XDLci2kOaFqFl4cjDYUok03G0AduUlRx10v -            CKbKOTIdm8C36A902/3ms+Hyzkruu+VagGIZuPSwqXHJPCu7Ju+jarKQstMmpQi0 -            PubweWDL0o/Dfz2qT3DuL4xDecIvGE6kv3m41hHJYiK+2/azTSehyPFbsVbL7w0V -            LgKN3usnZNcpTsBWxRGT7nMFSnX2FLDu7d9OfCuaXYxHVFLZaNrpccOq8NF/7Hbk -            DDW81W7CvLyJDlp0WLnAawSOGTUTPoYv/2wAapJ89i8QGCueGvEc6o2EcnBVMFEW -            ejWTQzyD816f4RsplnrRqLVlIMbr9Q/n5TvlgjjhX7IMEfMy4+7qLGRQkNbFzgwK -            jxNG2fFSCjOEQitm0gAtx7QRIyvYr6c7/xiHz4AwxYzBmvQsL/OK57NO4+Krwgj5 -            Vk8TQ2jGO7J4bB38zaxK+Lrtfl8i1AK1171JqFMhOc34JSJ7T4LWDMECAwEAAQ== -            -----END RSA PUBLIC KEY----- -          ''; -        }; -      }; -      ssh.privkey.path = <secrets/ssh.id_ed25519>; -      ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOd/HqZIO9Trn3eycl23GZAz21HQCISaVNfNyaLSQvJ6"; -    };      ju = {        external = true;        nets = { diff --git a/krebs/5pkgs/simple/git-preview/default.nix b/krebs/5pkgs/simple/git-preview/default.nix new file mode 100644 index 000000000..f20f2a636 --- /dev/null +++ b/krebs/5pkgs/simple/git-preview/default.nix @@ -0,0 +1,15 @@ +{ coreutils, git, stdenv, writeDashBin }: + +writeDashBin "git-preview" '' +  PATH=${stdenv.lib.makeBinPath [ +    coreutils +    git +  ]}''${PATH+:$PATH} +  hashes=$(git log --format=%h "..$1") +  end=$(echo "$hashes" | head -1) +  start=$(echo "$hashes" | tail -1) +  # exit if no diff was found +  test -z "$start" && exit 0 +  shift +  git diff "$start^..$end" "$@" +'' diff --git a/krebs/5pkgs/simple/weechat/default.nix b/krebs/5pkgs/simple/weechat/default.nix deleted file mode 100644 index c703ca8bf..000000000 --- a/krebs/5pkgs/simple/weechat/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ stdenv, fetchurl, ncurses, openssl, aspell, gnutls -, zlib, curl , pkgconfig, libgcrypt -, cmake, makeWrapper, libiconv -, asciidoctor # manpages -, guileSupport ? true, guile -, luaSupport ? true, lua5 -, perlSupport ? true, perl -, pythonPackages -, rubySupport ? true, ruby -, tclSupport ? true, tcl -, extraBuildInputs ? [] }: - -assert guileSupport -> guile != null; -assert luaSupport -> lua5 != null; -assert perlSupport -> perl != null; -assert rubySupport -> ruby != null; -assert tclSupport -> tcl != null; - -let -  inherit (pythonPackages) python pycrypto pync; -in - -stdenv.mkDerivation rec { -  version = "1.8"; -  name = "weechat-${version}"; - -  src = fetchurl { -    url = "http://weechat.org/files/src/weechat-${version}.tar.bz2"; -    sha256 = "10km0437lg9ms6f16h20s89l2w9f9g597rykybxb16s95ql48z08"; -  }; - -  outputs = [ "out" "doc" ]; - -  enableParallelBuilding = true; -  cmakeFlags = with stdenv.lib; [ -    "-DENABLE_MAN=ON" -    "-DENABLE_DOC=ON" -  ] -    ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"] -    ++ optional (!guileSupport) "-DENABLE_GUILE=OFF" -    ++ optional (!luaSupport)   "-DENABLE_LUA=OFF" -    ++ optional (!perlSupport)  "-DENABLE_PERL=OFF" -    ++ optional (!rubySupport)  "-DENABLE_RUBY=OFF" -    ++ optional (!tclSupport)   "-DENABLE_TCL=OFF" -    ; - -  buildInputs = with stdenv.lib; [ -      ncurses python openssl aspell gnutls zlib curl pkgconfig -      libgcrypt pycrypto makeWrapper -      cmake -      asciidoctor -      ] -    ++ optional  guileSupport    guile -    ++ optional  luaSupport      lua5 -    ++ optional  perlSupport     perl -    ++ optional  rubySupport     ruby -    ++ optional  tclSupport      tcl -    ++ extraBuildInputs; - -  NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}" -    # Fix '_res_9_init: undefined symbol' error -    + (stdenv.lib.optionalString stdenv.isDarwin "-DBIND_8_COMPAT=1 -lresolv"); - -  postInstall = with stdenv.lib; '' -    NIX_PYTHONPATH="$out/lib/${python.libPrefix}/site-packages" -    wrapProgram "$out/bin/weechat" \ -      ${optionalString perlSupport "--prefix PATH : ${perl}/bin"} \ -      --prefix PATH : ${pythonPackages.python}/bin \ -      --prefix PYTHONPATH : "$PYTHONPATH" \ -      --prefix PYTHONPATH : "$NIX_PYTHONPATH" -  ''; - -  meta = { -    homepage = http://www.weechat.org/; -    description = "A fast, light and extensible chat client"; -    license = stdenv.lib.licenses.gpl3; -    maintainers = with stdenv.lib.maintainers; [ lovek323 garbas the-kenny ]; -    platforms = stdenv.lib.platforms.unix; -  }; -} diff --git a/krebs/5pkgs/simple/withGetopt.nix b/krebs/5pkgs/simple/withGetopt.nix new file mode 100644 index 000000000..196e6765a --- /dev/null +++ b/krebs/5pkgs/simple/withGetopt.nix @@ -0,0 +1,118 @@ +with import <stockholm/lib>; +{ utillinux, writeDash }: + +opt-spec: cmd-spec: let + +  cmd = cmd-spec opts; + +  cmd-script = +    if typeOf cmd == "set" +      then "exec ${cmd}" +      else cmd; + +  opts = mapAttrs (name: value: value // rec { +    long = value.long or (replaceStrings ["_"] ["-"] name); +    ref = value.ref or "\"\$${varname}\""; +    short = value.short or null; +    switch = value.switch or false; +    varname = value.varname or (replaceStrings ["-"] ["_"] name); +  }) opt-spec; + +  # true if b requires a to define its default value +  opts-before = a: b: +    test ".*[$]${stringAsChars (c: "[${c}]") a.varname}\\>.*" (b.default or ""); + +  opts-list = let +    sort-out = toposort opts-before (attrValues opts); +  in +    if sort-out ? result +      then sort-out.result +      else throw "toposort output: ${toJSON sort-out}"; + +  wrapper-name = +    if typeOf cmd == "set" && cmd ? name +      then "${cmd.name}-getopt" +      else "getopt-wrapper"; + +in writeDash wrapper-name '' +  set -efu + +  wrapper_name=${shell.escape wrapper-name} + +  ${concatStringsSep "\n" (mapAttrsToList (name: opt: /* sh */ '' +    unset ${opt.varname} +  '') opts)} + +  args=$(${utillinux}/bin/getopt \ +      -l ${shell.escape +            (concatMapStringsSep "," +              (opt: opt.long + optionalString (!opt.switch) ":") +              (filter (opt: opt.long != null) +                      (attrValues opts)))} \ +      -n "$wrapper_name" \ +      -o ${shell.escape +            (concatMapStringsSep "" +              (opt: opt.short + optionalString (!opt.switch) ":") +              (filter (opt: opt.short != null) +                      (attrValues opts)))} \ +      -s sh \ +      -- "$@") +  if \test $? != 0; then exit 1; fi +  eval set -- "$args" + +  while :; do +    case $1 in +    ${concatStringsSep "\n" (mapAttrsToList (name: opt: /* sh */ '' +      (${concatMapStringsSep "|" shell.escape (filter (x: x != "") [ +        (optionalString (opt.long != null) "--${opt.long}") +        (optionalString (opt.short != null) "-${opt.short}") +      ])}) +        ${if opt.switch then /* sh */ '' +          ${opt.varname}=true +          shift +        '' else /* sh */ '' +          ${opt.varname}=$2 +          shift 2 +        ''} +      ;; +    '') (filterAttrs +          (_: opt: opt.long != null || opt.short != null) +          opts))} +    --) +      shift +      break +    esac +  done + +  ${concatMapStringsSep "\n" +    (opt: /* sh */ '' +      if \test "''${${opt.varname}+1}" != 1; then +        printf '%s: missing mandatory option '--%s'\n' \ +            "$wrapper_name" \ +            ${shell.escape opt.long} +        error=1 +      fi +    '') +    (filter +      (x: ! hasAttr "default" x) +      (attrValues opts))} +  if test "''${error+1}" = 1; then +    exit 1 +  fi + +  ${concatMapStringsSep "\n" +    (opt: /* sh */ '' +      if \test "''${${opt.varname}+1}" != 1; then +        ${opt.varname}=${opt.default} +      fi +    '') +    (filter +      (hasAttr "default") +      opts-list)} + +  ${concatStringsSep "\n" (mapAttrsToList (name: opt: /* sh */ '' +    export ${opt.varname} +  '') opts)} + +  ${cmd-script} "$@" +'' | 
