Skip to content

Commit

Permalink
feat: Pass through individual channel configuration
Browse files Browse the repository at this point in the history
Channel-specific configuration is now also passed through to
flake-utils-plus.mkFlake, allowing channels to have distinct settings and
allowing for channel selection for individual hosts.
  • Loading branch information
lpchaim committed Sep 18, 2024
1 parent c6238c8 commit 4054bdc
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions snowfall-lib/flake/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
snowfall-lib,
snowfall-config,
}: let
inherit (core-inputs.nixpkgs.lib) assertMsg foldl filterAttrs const;
inherit (core-inputs.nixpkgs.lib) const filterAttrs mapAttrs traceVal;
in rec {
flake = rec {
## Remove the `self` attribute from an attribute set.
Expand Down Expand Up @@ -128,6 +128,7 @@ in rec {
inherit namespace;
extra-overlays = full-flake-options.extra-exported-overlays or {};
};
channels = full-flake-options.channels or {};

outputs-builder = channels: let
user-outputs-builder =
Expand Down Expand Up @@ -172,12 +173,22 @@ in rec {
darwinModules = darwin-modules;
homeModules = home-modules;

channelsConfig = full-flake-options.channels-config or {};

channels.nixpkgs.overlaysBuilder = snowfall-lib.overlay.create-overlays-builder {
inherit namespace;
extra-overlays = full-flake-options.overlays or [];
};
channelsConfig =
full-flake-options.channels-config
or full-flake-options.channelsConfig
or {};

channels =
mapAttrs
(channel: config:
config
// {
overlaysBuilder = snowfall-lib.overlay.create-overlays-builder {
inherit namespace;
extra-overlays = full-flake-options.overlays or [];
};
})
({nixpkgs = {};} // channels);

outputsBuilder = outputs-builder;

Expand Down

0 comments on commit 4054bdc

Please sign in to comment.