From 939f1b20c2d9e7da6fbe83005057a5e14d5abf4d Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 25 Jul 2015 01:05:14 +0200 Subject: krebs.types.user += mail --- 4lib/krebs/types.nix | 3 +++ 1 file changed, 3 insertions(+) (limited to '4lib') diff --git a/4lib/krebs/types.nix b/4lib/krebs/types.nix index ca92c6900..3d3d75a65 100644 --- a/4lib/krebs/types.nix +++ b/4lib/krebs/types.nix @@ -83,6 +83,9 @@ types // rec { user = submodule { options = { + mail = mkOption { + type = str; # TODO retiolum mail address + }; name = mkOption { type = str; # TODO }; -- cgit v1.3.1 From 0a5548c379a373157448c3b3798073c6d426033b Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 25 Jul 2015 02:14:44 +0200 Subject: {3 -> 4} krebs {listset,tree} --- 3modules/krebs/default.nix | 19 ++----------------- 4lib/krebs/default.nix | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 17 deletions(-) (limited to '4lib') diff --git a/3modules/krebs/default.nix b/3modules/krebs/default.nix index 43e7e4c59..33c108811 100644 --- a/3modules/krebs/default.nix +++ b/3modules/krebs/default.nix @@ -68,27 +68,12 @@ let de.krebsco = "ovh"; }; - # splitByProvider : [alias] -> set providername [alias] - splitByProvider = foldl (acc: alias: insert (providerOf alias) alias acc) {}; + # splitByProvider : [alias] -> listset providername alias + splitByProvider = foldl (acc: alias: listset-insert (providerOf alias) alias acc) {}; # providerOf : alias -> providername providerOf = alias: tree-get (splitString "." alias) providers; - - # insert : k -> v -> set k [v] -> set k [v] - insert = name: value: set: - set // { ${name} = set.${name} or [] ++ [value]; }; - - # tree k v = set k (either v (tree k v)) - - # tree-get : [k] -> tree k v -> v - tree-get = path: x: - let - y = x.${last path}; - in - if typeOf y != "set" - then y - else tree-get (init path) y; in concatStringsSep "\n" (flatten ( # TODO deepMap ["hosts" "nets"] (hostname: host: netname: net: diff --git a/4lib/krebs/default.nix b/4lib/krebs/default.nix index 0c59076b6..0c42a5de3 100644 --- a/4lib/krebs/default.nix +++ b/4lib/krebs/default.nix @@ -12,4 +12,22 @@ builtins // lib // rec { types = import ./types.nix { inherit lib; }; + + # listset k v = set k [v] + + # listset-insert : k -> v -> listset k v -> listset k v + listset-insert = name: value: set: + set // { ${name} = set.${name} or [] ++ [value]; }; + + # tree k v = set k (either v (tree k v)) + + # tree-get : [k] -> tree k v -> v + tree-get = path: x: + let + y = x.${last path}; + in + if typeOf y != "set" + then y + else tree-get (init path) y; + } -- cgit v1.3.1 [cgit] Unable to lock slot /tmp/cgit/8a000000.lock: No such file or directory (2)