feat(lib/buildClan): turn lib/build-clan into a 'buildClanModule' with sub-features such as 'buildClan' and 'flakePartsModule'
This commit is contained in:
@@ -9,6 +9,8 @@ clan-core:
|
||||
}:
|
||||
let
|
||||
inherit (lib) types;
|
||||
|
||||
buildClanModule = clan-core.clanLib.buildClanModule;
|
||||
in
|
||||
{
|
||||
|
||||
@@ -20,8 +22,7 @@ in
|
||||
inherit (inputs) nixpkgs;
|
||||
};
|
||||
modules = [
|
||||
../lib/build-clan/interface.nix
|
||||
../lib/build-clan/module.nix
|
||||
buildClanModule.flakePartsModule
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -6,36 +6,54 @@
|
||||
nixpkgs,
|
||||
clan-core,
|
||||
}:
|
||||
{
|
||||
## Inputs
|
||||
self ? lib.warn "Argument: 'self' must be set when using 'buildClan'." null, # Reference to the current flake
|
||||
# allows to include machine-specific modules i.e. machines.${name} = { ... }
|
||||
# A map from arch to pkgs, if specified this nixpkgs will be only imported once for each system.
|
||||
# This improves performance, but all nipxkgs.* options will be ignored.
|
||||
# deadnix: skip
|
||||
inventory ? { },
|
||||
## Special inputs (not passed to the module system as config)
|
||||
specialArgs ? { }, # Extra arguments to pass to nixosSystem i.e. useful to make self available # A set containing clan meta: name :: string, icon :: string, description :: string
|
||||
##
|
||||
...
|
||||
}@attrs:
|
||||
let
|
||||
eval = import ./function-adapter.nix {
|
||||
inherit
|
||||
lib
|
||||
nixpkgs
|
||||
clan-core
|
||||
self
|
||||
;
|
||||
inherit specialArgs;
|
||||
};
|
||||
|
||||
rest = builtins.removeAttrs attrs [ "specialArgs" ];
|
||||
in
|
||||
eval {
|
||||
imports = [
|
||||
rest
|
||||
# implementation
|
||||
./module.nix
|
||||
clanResultAttributes = [
|
||||
"clanInternals"
|
||||
"nixosConfigurations"
|
||||
];
|
||||
in
|
||||
{
|
||||
inherit clanResultAttributes;
|
||||
flakePartsModule = {
|
||||
imports = [
|
||||
./interface.nix
|
||||
./module.nix
|
||||
];
|
||||
};
|
||||
/**
|
||||
Function that returns the same result as the correlated flake-parts module
|
||||
*/
|
||||
buildClan =
|
||||
{
|
||||
## Inputs
|
||||
self ? lib.warn "Argument: 'self' must be set when using 'buildClan'." null, # Reference to the current flake
|
||||
# allows to include machine-specific modules i.e. machines.${name} = { ... }
|
||||
# A map from arch to pkgs, if specified this nixpkgs will be only imported once for each system.
|
||||
# This improves performance, but all nipxkgs.* options will be ignored.
|
||||
# deadnix: skip
|
||||
inventory ? { },
|
||||
## Special inputs (not passed to the module system as config)
|
||||
specialArgs ? { }, # Extra arguments to pass to nixosSystem i.e. useful to make self available # A set containing clan meta: name :: string, icon :: string, description :: string
|
||||
##
|
||||
...
|
||||
}@attrs:
|
||||
let
|
||||
eval = import ./function-adapter.nix {
|
||||
inherit
|
||||
lib
|
||||
nixpkgs
|
||||
clan-core
|
||||
self
|
||||
;
|
||||
inherit specialArgs;
|
||||
};
|
||||
rest = builtins.removeAttrs attrs [ "specialArgs" ];
|
||||
in
|
||||
eval {
|
||||
imports = [
|
||||
rest
|
||||
# implementation
|
||||
./module.nix
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -20,10 +20,12 @@ lib.fix (clanLib: {
|
||||
clan-core = self;
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
};
|
||||
buildClan = import ./build-clan {
|
||||
|
||||
buildClanModule = import ./build-clan {
|
||||
inherit lib nixpkgs;
|
||||
clan-core = self;
|
||||
};
|
||||
buildClan = clanLib.buildClanModule.buildClan;
|
||||
# ------------------------------------
|
||||
# Lib functions that don't depend on 'self'
|
||||
inventory = clanLib.callLib ./inventory { };
|
||||
|
||||
Reference in New Issue
Block a user