Individual channel configuration.

Adopted from https://github.com/snowfallorg/lib/pull/128#issuecomment-3383838494
This commit is contained in:
Aleksandr Lebedev 2025-10-21 22:43:03 +02:00
parent f0e35a78e9
commit 73e5ee371b
2 changed files with 22 additions and 7 deletions

View file

@ -4,7 +4,7 @@
snowfall-lib,
snowfall-config,
}: let
inherit (core-inputs.nixpkgs.lib) assertMsg foldl filterAttrs const mapAttrs mapAttrs' hasSuffix removeSuffix nameValuePair;
inherit (core-inputs.nixpkgs.lib) assertMsg foldl filterAttrs const mapAttrs mapAttrs' hasSuffix removeSuffix nameValuePair traceVal;
in rec {
flake = rec {
## Remove the `self` attribute from an attribute set.
@ -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 =
@ -172,12 +173,27 @@ in rec {
darwinModules = darwin-modules;
homeModules = home-modules;
channelsConfig = full-flake-options.channels-config or {};
channelsConfig =
full-flake-options.channels-config
channels.nixpkgs.overlaysBuilder = snowfall-lib.overlay.create-overlays-builder {
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;

View file

@ -63,7 +63,6 @@ in {
systems = args.systems or {};
lib = snowfall-lib.internal.system-lib;
pkgs = user-inputs.self.pkgs.${system}.nixpkgs;
inputs = snowfall-lib.flake.without-src user-inputs;
namespace = snowfall-config.namespace;