mirror of
https://github.com/nix-community/flakelight.git
synced 2024-11-22 23:43:11 +01:00
589ee5ba7a
Many attributes can take moduleArgs when auto-loaded in order to facilitate access to them from other files. Those same attributes could not take moduleArgs when included directly, which was inconsistent. With this change, all attributes that could take moduleArgs when auto-loaded can now always do so. Auto-loading no longer needs special cases.
34 lines
753 B
Nix
34 lines
753 B
Nix
# flakelight -- Framework for simplifying flake setup
|
|
# Copyright (C) 2023 Archit Gupta <archit@accelbread.com>
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
{ config, lib, flakelight, moduleArgs, ... }:
|
|
let
|
|
inherit (lib) mkMerge mkOption mkIf;
|
|
inherit (lib.types) lazyAttrsOf nullOr;
|
|
inherit (flakelight.types) optCallWith overlay;
|
|
in
|
|
{
|
|
options = {
|
|
overlay = mkOption {
|
|
type = nullOr overlay;
|
|
default = null;
|
|
};
|
|
|
|
overlays = mkOption {
|
|
type = optCallWith moduleArgs (lazyAttrsOf overlay);
|
|
default = { };
|
|
};
|
|
};
|
|
|
|
config = mkMerge [
|
|
(mkIf (config.overlay != null) {
|
|
overlays.default = config.overlay;
|
|
})
|
|
|
|
(mkIf (config.overlays != { }) {
|
|
outputs = { inherit (config) overlays; };
|
|
})
|
|
];
|
|
}
|