modules: fix consistent nixpkgs and nix-darwin injection

This commit is contained in:
Johannes Kirschbauer
2025-06-27 09:21:19 +02:00
parent 5dc8865da1
commit 04a31bea67
4 changed files with 19 additions and 13 deletions

View File

@@ -1,34 +1,34 @@
clan-core:
# Downstream flake arguments
{
self,
inputs,
config,
lib,
self,
...
}:
let
inherit (lib) types;
in
{
# Backwards compatibility
imports = [
(lib.mkRenamedOptionModule [ "clan" ] [ "flake" "clan" ])
];
# Our module is completely public, so we dont need to map it
# Mapped top level outputs
options.flake = {
# Backwards compat
# CLI compat
clanInternals = lib.mkOption {
description = "Internals as needed by the clan cli.";
description = "Stable nix interface interacted by the clan cli.";
default = config.flake.clan.clanInternals;
};
# The one and only clan module
# The clan module
clan = lib.mkOption {
description = "The evaluated clan module";
description = "Clan module. Define your clan inside here";
default = { };
type = types.submoduleWith {
specialArgs = {
inherit self;
inherit (inputs) nixpkgs nix-darwin;
};
modules = [
clan-core.modules.clan.default

View File

@@ -4,8 +4,6 @@
_module.args = {
inherit clan-core;
inherit (clan-core) clanLib;
# TODO: This should be set via an option otherwise it is not possible to override
inherit (clan-core.inputs) nixpkgs nix-darwin;
};
imports = [
./module.nix

View File

@@ -165,7 +165,6 @@ in
config = {
inventory.modules = clan-core.clanModules;
inventory._legacyModules = clan-core.clanModules;
# Merge the meta attributes from the buildClan function
inventory.meta = config.meta;
outputs.moduleForMachine = lib.mkMerge [

View File

@@ -7,18 +7,27 @@
}:
rec {
buildClan =
module: lib.warn "'buildClan' is deprecated. Use 'clan-core.lib.clan' instead" (clan module).config;
# TODO: Once all templates and docs are migrated add: lib.warn "'buildClan' is deprecated. Use 'clan-core.lib.clan' instead"
module: (clan module).config;
clan =
{
self ? lib.warn "Argument: 'self' must be set when using 'buildClan'." null, # Reference to the current flake
self ? lib.warn "Argument: 'self' must be set" null, # Reference to the current flake
...
}@m:
let
nixpkgs = self.inputs.nixpkgs or clan-core.inputs.nixpkgs;
nix-darwin = self.inputs.nix-darwin or clan-core.inputs.nix-darwin;
in
lib.evalModules {
specialArgs = {
inherit
self
;
inherit
nixpkgs
nix-darwin
;
};
modules = [
m