diff --git a/lib/default.nix b/lib/default.nix index f9734ed0f..48f3aaebd 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -28,7 +28,6 @@ lib.fix ( # Plain imports. introspection = import ./introspection { inherit lib; }; jsonschema = import ./jsonschema { inherit lib; }; - facts = import ./facts.nix { inherit lib; }; docs = import ./docs.nix { inherit lib; }; # flakes diff --git a/lib/facts.nix b/lib/facts.nix deleted file mode 100644 index 967b44828..000000000 --- a/lib/facts.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib, ... }: -clanDir: -let - - allMachineNames = lib.mapAttrsToList (name: _: name) (builtins.readDir clanDir); - - getFactPath = machine: fact: "${clanDir}/machines/${machine}/facts/${fact}"; - - readFact = - machine: fact: - let - path = getFactPath machine fact; - in - if builtins.pathExists path then builtins.readFile path else null; - - # Example: - # - # readFactFromAllMachines zerotier-ip - # => { - # machineA = "1.2.3.4"; - # machineB = "5.6.7.8"; - # }; - readFactFromAllMachines = - fact: - let - machines = allMachineNames; - facts = lib.genAttrs machines (machine: readFact machine fact); - filteredFacts = lib.filterAttrs (_machine: fact: fact != null) facts; - in - filteredFacts; - - # all given facts are are set and factvalues are never null. - # - # Example: - # - # readFactsFromAllMachines [ "zerotier-ip" "syncthing.pub" ] - # => { - # machineA = - # { - # "zerotier-ip" = "1.2.3.4"; - # "synching.pub" = "1234"; - # }; - # machineB = - # { - # "zerotier-ip" = "5.6.7.8"; - # "synching.pub" = "23456719"; - # }; - # }; - readFactsFromAllMachines = - facts: - let - # machine -> fact -> factvalue - machinesFactsAttrs = lib.genAttrs allMachineNames ( - machine: lib.genAttrs facts (fact: readFact machine fact) - ); - # remove all machines which don't have all facts set - filteredMachineFactAttrs = lib.filterAttrs ( - _machine: values: builtins.all (fact: values.${fact} != null) facts - ) machinesFactsAttrs; - in - filteredMachineFactAttrs; -in -{ - inherit - allMachineNames - getFactPath - readFact - readFactFromAllMachines - readFactsFromAllMachines - ; -}