55 lines
1.6 KiB
Nix
55 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
# TODO: Get rid of self here.
|
|
# DONT add any new functions that depend on self here.
|
|
# If a lib function depends on a piece in clan-core add that piece to the function arguments
|
|
self ? throw "'self' should not be used in lib/default.nix, dont depend on it. It will be removed in short notice.",
|
|
...
|
|
}:
|
|
# Produces the
|
|
# 'clanLib' attribute set
|
|
# Wrapped with fix, so we can depend on other clanLib functions without passing the whole flake
|
|
lib.fix (
|
|
clanLib:
|
|
let
|
|
buildClanLib = (
|
|
clanLib.callLib ./modules {
|
|
clan-core = self;
|
|
}
|
|
);
|
|
in
|
|
{
|
|
|
|
inherit (buildClanLib)
|
|
buildClan
|
|
clan
|
|
;
|
|
/**
|
|
Like callPackage, but doesn't try to automatically detect arguments
|
|
'lib' and 'clanLib' are always passed, plus the additional arguments
|
|
*/
|
|
callLib = file: args: import file ({ inherit lib clanLib; } // args);
|
|
|
|
evalService = clanLib.callLib ./modules/inventory/distributed-service/evalService.nix { };
|
|
# ------------------------------------
|
|
# ClanLib functions
|
|
inventory = clanLib.callLib ./modules/inventory { };
|
|
test = clanLib.callLib ./test { };
|
|
flake-inputs = clanLib.callLib ./flake-inputs.nix { };
|
|
# Custom types
|
|
types = clanLib.callLib ./types { };
|
|
|
|
# Plain imports.
|
|
introspection = import ./introspection { inherit lib; };
|
|
jsonschema = import ./jsonschema { inherit lib; };
|
|
facts = import ./facts.nix { inherit lib; };
|
|
docs = import ./docs.nix { inherit lib; };
|
|
|
|
# flakes
|
|
flakes = clanLib.callLib ./flakes.nix { };
|
|
|
|
# TODO: Flatten our lib functions like this:
|
|
resolveModule = clanLib.callLib ./resolve-module { };
|
|
}
|
|
)
|