refactor: use pipe for clearer data transformations in overlay and home

Replace multiple intermediate let bindings with pipe for clearer data flow
in default-overlay creation and split-user-and-host function.

Changes:
- overlay/default.nix: Added pipe and flatten to imports
- overlay/default.nix: Refactored default-overlay using pipe (5 bindings → 1 pipeline)
- home/default.nix: Added pipe to imports
- home/default.nix: Refactored split-user-and-host using pipe

Impact:
- Lines: +8 -14 (net: -6)
- Eliminated 6 intermediate bindings total
- Clearer data transformation flow
- More maintainable code

Testing: nix flake check ✓
This commit is contained in:
anntnzrb
2025-10-09 00:00:09 -05:00
parent 8bfe3616e5
commit 3c01e24645
2 changed files with 12 additions and 16 deletions

View File

@@ -26,6 +26,7 @@ let
types types
hasInfix hasInfix
hasSuffix hasSuffix
pipe
; ;
user-homes-root = snowfall-lib.fs.get-snowfall-file "homes"; user-homes-root = snowfall-lib.fs.get-snowfall-file "homes";
@@ -64,9 +65,10 @@ in
split-user-and-host = split-user-and-host =
target: target:
let let
raw-name-parts = builtins.split "@" target; name-parts = pipe target [
name-parts = builtins.filter builtins.isString raw-name-parts; (builtins.split "@")
(builtins.filter builtins.isString)
];
user = builtins.elemAt name-parts 0; user = builtins.elemAt name-parts 0;
host = if builtins.length name-parts > 1 then builtins.elemAt name-parts 1 else ""; host = if builtins.length name-parts > 1 then builtins.elemAt name-parts 1 else "";
in in

View File

@@ -5,7 +5,7 @@
snowfall-config, snowfall-config,
}: }:
let 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-overlays-root = snowfall-lib.fs.get-snowfall-file "overlays";
user-packages-root = snowfall-lib.fs.get-snowfall-file "packages"; user-packages-root = snowfall-lib.fs.get-snowfall-file "packages";
@@ -191,18 +191,12 @@ in
default-overlay = default-overlay =
final: prev: final: prev:
let pipe [ package-overlays overlays ] [
overlays-list = builtins.attrValues overlays; (builtins.map builtins.attrValues)
package-overlays-list = builtins.attrValues package-overlays; flatten
(builtins.map (overlay: overlay final prev))
overlays-results = builtins.map (overlay: overlay final prev) overlays-list; snowfall-lib.attrs.merge-shallow-packages
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;
in in
package-overlays // overlays // { default = default-overlay; } // extra-overlays; package-overlays // overlays // { default = default-overlay; } // extra-overlays;
}; };