feat(clanLib): init evalServiceSchema
This commit is contained in:
@@ -84,7 +84,10 @@ in
|
||||
schema =
|
||||
(self.clanLib.inventory.evalClanService {
|
||||
modules = [ m ];
|
||||
prefix = [ "checks" system ];
|
||||
prefix = [
|
||||
"checks"
|
||||
system
|
||||
];
|
||||
}).config.result.api.schema;
|
||||
in
|
||||
schema
|
||||
|
||||
@@ -206,19 +206,7 @@ in
|
||||
inherit inventoryClass;
|
||||
|
||||
# Endpoint that can be called to get a service schema
|
||||
evalServiceSchema =
|
||||
{moduleSpec}:
|
||||
let
|
||||
resolvedModule = clan-core.clanLib.inventory.resolveModule {
|
||||
inherit moduleSpec;
|
||||
flakeInputs = config.self.inputs;
|
||||
localModuleSet = config.inventory.modules;
|
||||
};
|
||||
in
|
||||
(clan-core.clanLib.inventory.evalClanService {
|
||||
modules = [ resolvedModule ];
|
||||
prefix = [ ];
|
||||
}).config.result.api.schema;
|
||||
evalServiceSchema = clan-core.clanLib.evalServiceSchema config.self;
|
||||
|
||||
# TODO: unify this interface
|
||||
# We should have only clan.modules. (consistent with clan.templates)
|
||||
|
||||
@@ -15,10 +15,27 @@ lib.fix (clanLib: {
|
||||
*/
|
||||
callLib = file: args: import file ({ inherit lib clanLib; } // args);
|
||||
|
||||
# ------------------------------------
|
||||
buildClan = clanLib.buildClanModule.buildClanWith {
|
||||
clan-core = self;
|
||||
inherit nixpkgs nix-darwin;
|
||||
};
|
||||
evalServiceSchema =
|
||||
self:
|
||||
{
|
||||
moduleSpec,
|
||||
flakeInputs ? self.inputs,
|
||||
localModuleSet ? self.clan.modules,
|
||||
}:
|
||||
let
|
||||
resolvedModule = clanLib.inventory.resolveModule {
|
||||
inherit moduleSpec flakeInputs localModuleSet;
|
||||
};
|
||||
in
|
||||
(clanLib.inventory.evalClanService {
|
||||
modules = [ resolvedModule ];
|
||||
prefix = [ ];
|
||||
}).config.result.api.schema;
|
||||
# ------------------------------------
|
||||
# ClanLib functions
|
||||
evalClan = clanLib.callLib ./inventory/eval-clan-modules { };
|
||||
|
||||
@@ -62,7 +62,8 @@ let
|
||||
|
||||
'');
|
||||
clanAttrs =
|
||||
input.clan or (throw "It seems the flake input ${moduleSpec.input} doesn't export any clan resources");
|
||||
input.clan
|
||||
or (throw "It seems the flake input ${moduleSpec.input} doesn't export any clan resources");
|
||||
in
|
||||
clanAttrs.modules;
|
||||
|
||||
|
||||
@@ -716,18 +716,18 @@ class Flake:
|
||||
if not fallback_nixpkgs_hash.startswith("sha256-"):
|
||||
fallback_nixpkgs = Flake(str(nixpkgs_source()))
|
||||
fallback_nixpkgs.invalidate_cache()
|
||||
assert (
|
||||
fallback_nixpkgs.hash is not None
|
||||
), "this should be impossible as invalidate_cache() should always set `hash`"
|
||||
assert fallback_nixpkgs.hash is not None, (
|
||||
"this should be impossible as invalidate_cache() should always set `hash`"
|
||||
)
|
||||
fallback_nixpkgs_hash = fallback_nixpkgs.hash
|
||||
|
||||
select_hash = "@select_hash@"
|
||||
if not select_hash.startswith("sha256-"):
|
||||
select_flake = Flake(str(select_source()))
|
||||
select_flake.invalidate_cache()
|
||||
assert (
|
||||
select_flake.hash is not None
|
||||
), "this should be impossible as invalidate_cache() should always set `hash`"
|
||||
assert select_flake.hash is not None, (
|
||||
"this should be impossible as invalidate_cache() should always set `hash`"
|
||||
)
|
||||
select_hash = select_flake.hash
|
||||
|
||||
nix_code = f"""
|
||||
|
||||
Reference in New Issue
Block a user