summaryrefslogtreecommitdiffstats
path: root/4lib/tv
diff options
context:
space:
mode:
authortv <tv@shackspace.de>2015-07-24 12:23:52 +0200
committertv <tv@shackspace.de>2015-07-24 12:23:52 +0200
commitee52522cc139670c3eeaeeb462dff98ea870d2e4 (patch)
tree7022fa4da765ee34acd2a8f4e17abfe704fad8a7 /4lib/tv
parente3b72bb66e7c6bf410c8db81ff04e355a7b22116 (diff)
4: {tv -> krebs}.types
Diffstat (limited to '4lib/tv')
-rw-r--r--4lib/tv/default.nix87
1 files changed, 6 insertions, 81 deletions
diff --git a/4lib/tv/default.nix b/4lib/tv/default.nix
index 092a9626..267a858d 100644
--- a/4lib/tv/default.nix
+++ b/4lib/tv/default.nix
@@ -1,9 +1,12 @@
{ lib, pkgs, ... }:
-with builtins;
-with lib;
+let
+ krebs = import ../../4lib/krebs { inherit lib; };
+in
-builtins // lib // rec {
+with krebs;
+
+krebs // rec {
git = import ./git.nix {
lib = lib // {
@@ -53,82 +56,4 @@ builtins // lib // rec {
if isSafeChar c then c
else if c == "\n" then "'\n'"
else "\\${c}");
-
- types = lib.types // (with lib.types; rec {
-
- host = submodule {
- options = {
- name = mkOption {
- type = label;
- };
- dc = mkOption {
- type = label;
- };
- cores = mkOption {
- type = positive;
- };
- nets = mkOption {
- type = attrsOf net;
- apply = x: assert hasAttr "retiolum" x; x;
- };
- };
- };
-
- net = submodule ({ config, ... }: {
- options = {
- via = mkOption {
- type = nullOr net;
- default = null;
- };
- addrs = mkOption {
- type = listOf addr;
- apply = _: config.addrs4 ++ config.addrs6;
- };
- addrs4 = mkOption {
- type = listOf addr4;
- default = [];
- };
- addrs6 = mkOption {
- type = listOf addr6;
- default = [];
- };
- aliases = mkOption {
- # TODO nonEmptyListOf hostname
- type = listOf hostname;
- };
- tinc = mkOption {
- type = let net-config = config; in submodule ({ config, ... }: {
- options = {
- config = mkOption {
- type = str;
- apply = _: ''
- ${optionalString (net-config.via != null)
- (concatMapStringsSep "\n" (a: "Address = ${a}") net-config.via.addrs)}
- ${concatMapStringsSep "\n" (a: "Subnet = ${a}") net-config.addrs}
- ${config.pubkey}
- '';
- };
- pubkey = mkOption {
- type = str;
- };
- };
- });
- };
- };
- });
-
- positive = mkOptionType {
- name = "positive integer";
- check = x: isInt x && x > 0;
- merge = mergeOneOption;
- };
-
- # TODO
- addr = str;
- addr4 = str;
- addr6 = str;
- hostname = str;
- label = str;
- });
-
}