summaryrefslogtreecommitdiffstats
path: root/4lib/krebs
diff options
context:
space:
mode:
Diffstat (limited to '4lib/krebs')
-rw-r--r--4lib/krebs/default.nix18
-rw-r--r--4lib/krebs/dns.nix31
-rw-r--r--4lib/krebs/listset.nix11
-rw-r--r--4lib/krebs/tree.nix13
-rw-r--r--4lib/krebs/types.nix109
5 files changed, 0 insertions, 182 deletions
diff --git a/4lib/krebs/default.nix b/4lib/krebs/default.nix
deleted file mode 100644
index b675853..0000000
--- a/4lib/krebs/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ lib, ... }:
-
-with builtins;
-with lib;
-
-builtins // lib // rec {
-
- addName = name: set:
- set // { inherit name; };
-
- addNames = mapAttrs addName;
-
- types = import ./types.nix { inherit lib; };
-
- dns = import ./dns.nix { inherit lib; };
- listset = import ./listset.nix { inherit lib; };
- tree = import ./tree.nix { inherit lib; };
-}
diff --git a/4lib/krebs/dns.nix b/4lib/krebs/dns.nix
deleted file mode 100644
index b2cf3c2..0000000
--- a/4lib/krebs/dns.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, ... }:
-
-let
- listset = import ./listset.nix { inherit lib; };
-in
-
-with builtins;
-with lib;
-
-rec {
- # label = string
-
- # TODO does it make sense to have alias = list label?
-
- # split-by-provider :
- # [[label]] -> tree label provider -> listset provider alias
- split-by-provider = as: providers:
- foldl (m: a: listset.insert (provider-of a providers) a m) {} as;
-
- # provider-of : alias -> tree label provider -> provider
- # Note that we cannot use tree.get here, because path can be longer
- # than the tree depth.
- provider-of = a:
- let
- go = path: tree:
- if typeOf tree == "string"
- then tree
- else go (tail path) tree.${head path};
- in
- go (reverseList (splitString "." a));
-}
diff --git a/4lib/krebs/listset.nix b/4lib/krebs/listset.nix
deleted file mode 100644
index 3aae22f..0000000
--- a/4lib/krebs/listset.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ lib, ... }:
-
-with lib;
-
-rec {
- # listset k v = set k [v]
-
- # insert : k -> v -> listset k v -> listset k v
- insert = name: value: set:
- set // { ${name} = set.${name} or [] ++ [value]; };
-}
diff --git a/4lib/krebs/tree.nix b/4lib/krebs/tree.nix
deleted file mode 100644
index 1cd83b3..0000000
--- a/4lib/krebs/tree.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ lib, ... }:
-
-with lib;
-
-rec {
- # tree k v = set k (either v (tree k v))
-
- # get : [k] -> tree k v -> v
- get = path: tree:
- if length path > 0
- then get (tail path) tree.${head path} # TODO check if elem exists
- else tree;
-}
diff --git a/4lib/krebs/types.nix b/4lib/krebs/types.nix
deleted file mode 100644
index 92410dd..0000000
--- a/4lib/krebs/types.nix
+++ /dev/null
@@ -1,109 +0,0 @@
-{ lib, ... }:
-
-with lib;
-with types;
-
-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;
- };
- secure = mkOption {
- type = bool;
- default = false;
- description = ''
- If true, then the host is capable of keeping secret information.
-
- TODO define minimum requirements for secure hosts
- '';
- };
- };
- };
-
- 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 nullOr (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;
- };
- };
- }));
- default = null;
- };
- };
- });
-
- positive = mkOptionType {
- name = "positive integer";
- check = x: isInt x && x > 0;
- merge = mergeOneOption;
- };
-
- user = submodule {
- options = {
- mail = mkOption {
- type = str; # TODO retiolum mail address
- };
- name = mkOption {
- type = str; # TODO
- };
- pubkey = mkOption {
- type = str;
- };
- pubkeys = mkOption {
- type = attrsOf str;
- default = {};
- };
- };
- };
-
- # TODO
- addr = str;
- addr4 = str;
- addr6 = str;
- hostname = str;
- label = str;
-}