diff --git a/snowfall-lib/home/default.nix b/snowfall-lib/home/default.nix index 50f0a1c..d704b96 100644 --- a/snowfall-lib/home/default.nix +++ b/snowfall-lib/home/default.nix @@ -26,6 +26,7 @@ let types hasInfix hasSuffix + pipe ; user-homes-root = snowfall-lib.fs.get-snowfall-file "homes"; @@ -64,9 +65,10 @@ in split-user-and-host = target: let - raw-name-parts = builtins.split "@" target; - name-parts = builtins.filter builtins.isString raw-name-parts; - + name-parts = pipe target [ + (builtins.split "@") + (builtins.filter builtins.isString) + ]; user = builtins.elemAt name-parts 0; host = if builtins.length name-parts > 1 then builtins.elemAt name-parts 1 else ""; in diff --git a/snowfall-lib/overlay/default.nix b/snowfall-lib/overlay/default.nix index 4736399..0b334c9 100644 --- a/snowfall-lib/overlay/default.nix +++ b/snowfall-lib/overlay/default.nix @@ -5,7 +5,7 @@ snowfall-config, }: let - inherit (core-inputs.nixpkgs.lib) assertMsg foldl concatStringsSep; + inherit (core-inputs.nixpkgs.lib) assertMsg foldl concatStringsSep pipe flatten; user-overlays-root = snowfall-lib.fs.get-snowfall-file "overlays"; user-packages-root = snowfall-lib.fs.get-snowfall-file "packages"; @@ -191,18 +191,12 @@ in default-overlay = final: prev: - let - overlays-list = builtins.attrValues overlays; - package-overlays-list = builtins.attrValues package-overlays; - - overlays-results = builtins.map (overlay: overlay final prev) overlays-list; - package-overlays-results = builtins.map (overlay: overlay final prev) package-overlays-list; - - merged-results = snowfall-lib.attrs.merge-shallow-packages ( - package-overlays-results ++ overlays-results - ); - in - merged-results; + pipe [ package-overlays overlays ] [ + (builtins.map builtins.attrValues) + flatten + (builtins.map (overlay: overlay final prev)) + snowfall-lib.attrs.merge-shallow-packages + ]; in package-overlays // overlays // { default = default-overlay; } // extra-overlays; };