feat: interface and lib refactoring

This commit is contained in:
Jaka Hudoklin 2019-03-07 18:02:26 +01:00
parent e260ad9bb4
commit 5d8b66f8a0
No known key found for this signature in database
GPG key ID: 6A08896BFD32BD95
10 changed files with 111 additions and 88 deletions

View file

@ -1,14 +1,21 @@
{ pkgs ? import <nixpkgs> {}, lib ? pkgs.lib }:
let
lib' = lib.extend (lib: self: import ./lib.nix { inherit lib pkgs; });
with lib;
specialArgs' = {
let
kubenixLib = import ./lib { inherit lib pkgs; };
lib' = lib.extend (lib: self: import ./lib/extra.nix { inherit lib pkgs; });
defaultSpecialArgs = {
inherit kubenix;
};
evalKubernetesModules = {module ? null, modules ? [module], specialArgs ? specialArgs', ...}@attrs: let
attrs' = lib.filterAttrs (n: _: n != "module") attrs;
evalModules = {
module ? null,
modules ? [module],
specialArgs ? defaultSpecialArgs, ...
}@attrs: let
attrs' = filterAttrs (n: _: n != "module") attrs;
in lib'.evalModules (attrs' // {
inherit specialArgs modules;
args = {
@ -17,14 +24,11 @@ let
};
});
buildResources = args:
(evalKubernetesModules args).config.kubernetes.generated;
modules = import ./modules;
kubenix = {
inherit evalKubernetesModules buildResources kubenix;
inherit evalModules kubenix;
lib = lib';
lib = kubenixLib;
} // modules;
in kubenix