From 197d7929464757dbfcbbacbc1aef0586e9e20add Mon Sep 17 00:00:00 2001 From: Pacman99 Date: Sat, 1 May 2021 17:49:04 -0700 Subject: [PATCH] update to new lib format --- flake.lock | 2 +- lib/attrs.nix | 35 ----------------------------------- lib/lists.nix | 20 +++++++++----------- lib/mkFlake/default.nix | 7 +++---- lib/mkFlake/evalArgs.nix | 4 +--- lib/tests/lib.nix | 21 +-------------------- 6 files changed, 15 insertions(+), 74 deletions(-) diff --git a/flake.lock b/flake.lock index 484e301..795e0de 100644 --- a/flake.lock +++ b/flake.lock @@ -79,7 +79,7 @@ "utils": "utils_2" }, "locked": { - "narHash": "sha256-oTiKYoR210VwjomzfSn/pCJ3immdUDRUPbYTDGaPFn8=", + "narHash": "sha256-9JsKDtgLSmAkcaKRD4Ycttip1jpO9dVVaRwclWH0V8E=", "path": "./lib", "type": "path" }, diff --git a/lib/attrs.nix b/lib/attrs.nix index 93f7958..1061c0e 100644 --- a/lib/attrs.nix +++ b/lib/attrs.nix @@ -12,43 +12,8 @@ rec { # Generate an attribute set by mapping a function over a list of values. genAttrs' = values: f: lib.listToAttrs (map f values); - # Convert a list of file paths to attribute set where - # the key is the folder or filename stripped of nix - # extension and imported content of the file as value. - # - pathsToImportedAttrs = paths: - let - paths' = lib.filter - (path: lib.hasSuffix ".nix" path - || lib.pathExists "${path}/default.nix") - paths; - in - genAttrs' paths' (path: { - name = lib.removeSuffix ".nix" - # Safe as long this is just used as a name - (builtins.unsafeDiscardStringContext (baseNameOf path)); - value = import path; - }); - - importHosts = dir: - lib.os.recImport { - inherit dir; - _import = base: { - modules = import "${toString dir}/${base}.nix"; - }; - }; - concatAttrs = lib.fold (attr: sum: lib.recursiveUpdate sum attr) { }; - # Filter out packages that support given system and follow flake check requirements - filterPackages = system: packages: - let - # Everything that nix flake check requires for the packages output - filter = (n: v: with v; let platforms = meta.hydraPlatforms or meta.platforms or [ ]; in - lib.isDerivation v && !meta.broken && builtins.elem system platforms); - in - lib.filterAttrs filter packages; - safeReadDir = path: lib.optionalAttrs (builtins.pathExists (toString path)) (builtins.readDir (toString path)); } diff --git a/lib/lists.nix b/lib/lists.nix index 5e9c57b..4bef865 100644 --- a/lib/lists.nix +++ b/lib/lists.nix @@ -3,19 +3,17 @@ collectProfiles = set: let collectNestedProfiles = set: - lib.mapAttrsToList (n: v: - if builtins.isAttrs v then - [ v.default or null ] ++ collectNestedProfiles v - else null - ) set; + lib.mapAttrsToList + (n: v: + if builtins.isAttrs v then + [ v.default or null ] ++ collectNestedProfiles v + else null + ) + set; in - builtins.filter (x: x != null) (lib.flatten (collectNestedProfiles set)); + builtins.filter (x: x != null) (lib.flatten (collectNestedProfiles set)); - pathsIn = dir: - let - fullPath = name: "${toString dir}/${name}"; - in - map fullPath (lib.attrNames (lib.safeReadDir dir)); + profileMap = list: map (profile: profile.default) (lib.flatten list); unifyOverlays = channels: map (o: if builtins.isFunction (o null null) then o channels else o); } diff --git a/lib/mkFlake/default.nix b/lib/mkFlake/default.nix index ed99db0..5bd6419 100644 --- a/lib/mkFlake/default.nix +++ b/lib/mkFlake/default.nix @@ -1,6 +1,5 @@ { lib, deploy }: let - inherit (lib) os; inherit (builtins) mapAttrs attrNames attrValues head isFunction; in @@ -66,16 +65,16 @@ lib.systemFlake (lib.mergeAny modules = cfg.nixos.hostDefaults.externalModules ++ defaultModules; builder = args: args.specialArgs.channel.input.lib.nixosSystem (lib.mergeAny args { # So modules and functions can create their own version of the build - modules = [ { lib.builderArgs = args; } ]; + modules = [{ lib.builderArgs = args; }]; }); }; nixosModules = lib.exporter.modulesFromList cfg.nixos.hostDefaults.modules; homeModules = lib.exporter.modulesFromList cfg.home.modules; - homeConfigurations = os.mkHomeConfigurations self.nixosConfigurations; + homeConfigurations = lib.mkHomeConfigurations self.nixosConfigurations; - deploy.nodes = os.mkNodes deploy self.nixosConfigurations; + deploy.nodes = lib.mkDeployNodes deploy self.nixosConfigurations; overlays = lib.exporter.overlaysFromChannelsExporter { # since we can't detect overlays owned by self diff --git a/lib/mkFlake/evalArgs.nix b/lib/mkFlake/evalArgs.nix index ee42e22..bf36627 100644 --- a/lib/mkFlake/evalArgs.nix +++ b/lib/mkFlake/evalArgs.nix @@ -4,8 +4,6 @@ let argOpts = with lib; { config, ... }: let - inherit (lib) os; - cfg = config; inherit (config) self; @@ -188,7 +186,7 @@ let suites = mkOption { type = pathTo (functionTo attrs); default = _: { }; - apply = suites: os.mkSuites { + apply = suites: lib.mkSuites { inherit suites; inherit (config) profiles; }; diff --git a/lib/tests/lib.nix b/lib/tests/lib.nix index e992df6..78536e7 100644 --- a/lib/tests/lib.nix +++ b/lib/tests/lib.nix @@ -37,25 +37,6 @@ lib.runTests { ]; }; - testPathsToImportedAttrs = { - expr = - pathsToImportedAttrs [ - (toString ./testPathsToImportedAttrs/dir) - ./testPathsToImportedAttrs/foo.nix - ./testPathsToImportedAttrs/bar.nix - ./testPathsToImportedAttrs/t.nix - ./testPathsToImportedAttrs/f.nix - ]; - - expected = { - dir = { a = 5; }; - foo = { bar = 1; }; - bar = { foo = 2; }; - t = true; - f = false; - }; - }; - testRgxToString = lib.testAllTrue [ (rgxToString ".+x" "vxk" == "vx") (rgxToString "^fo" "foo" == "fo") @@ -72,7 +53,7 @@ lib.runTests { }; testSuites = { - expr = os.mkSuites { + expr = mkSuites { suites = { profiles, ... }: with profiles; { bar = [ foo ]; };