DavHau
50cce90527
clan services: use service modules from clan-core by default
...
Users will use clan-core services first before making their own. Therefore this is a better default. Also it allow us to simplify rendering of our docs
2025-06-30 10:13:46 +00:00
Johannes Kirschbauer
50f6b4a095
modules.clan.default: move specialArgs into common place
2025-06-26 17:37:42 +02:00
Johannes Kirschbauer
e195a77476
buildClan: deprecate in favor of 'clan'
...
clan.lib.clan { <your definition> } returns an eval result
In contrast to buildClan which returns the .config
This allows for better introspection
2025-06-26 17:08:47 +02:00
Johannes Kirschbauer
0271af0dcb
modules: move clan module to flake.modules.clan.default
2025-06-26 17:08:47 +02:00
Johannes Kirschbauer
e77769bd20
refactor: clanLib buildClan
2025-06-26 15:20:05 +02:00
Johannes Kirschbauer
11a94893fb
refactor: unify evalClanService with evalService
2025-06-26 14:50:35 +02:00
Johannes Kirschbauer
c91b5fb3db
build-inventory: move inventory and inventoryClass into explizitly different folders
2025-06-25 17:55:45 +02:00
Johannes Kirschbauer
247eb46b5e
Refactor(build-clan): rename to lib/modules
...
This is a preparation for moving everything into clan, to make it all one module evaluation
2025-06-23 16:06:49 +02:00
DavHau
ae611e8fde
lib: mkOfflineFlakeLock init
...
copied from the clan-core-flake module
I plan to re-use this function to improve the clan test framework to allow cli execution
2025-06-09 15:23:09 +07:00
Johannes Kirschbauer
df0b8cfd45
Feat(clanLib): init types {uniqueDeferredSerializableModule}
2025-05-21 18:41:14 +02:00
Johannes Kirschbauer
e44d34ef99
feat(clanLib): init evalServiceSchema
2025-05-05 21:55:29 +02:00
Michael Hoang
6c8ef6e9be
cli: don't use select from clanLib
2025-04-28 12:52:00 +10:00
Johannes Kirschbauer
7007b7d62e
refactor: rename clanLib.values to introspection
2025-04-27 13:10:42 +02:00
Michael Hoang
cc4b009f06
lib: move select.select -> select for backwards compat with old CLIs
2025-04-25 17:30:06 +10:00
lassulus
5feccf4e57
Refactor select with new maybe selector
...
This is a great refactor of the select functionality in the flake class.
This now uses the same parser as the nix code, but runs it in python for
nice stacktraces.
Also we now have a maybe selector which can be used by prepending the
selector with a ?
Tests have been expanded to make sure the code is more stable and easier
to understand
2025-04-25 16:26:45 +10:00
Johannes Kirschbauer
2796038254
chore(test/makeTestClan): document all options, remove magic specialArgs
2025-04-16 10:33:32 +02:00
Johannes Kirschbauer
8ae0f5ddcb
tests(clan): move test-inventory.nix to clanLib. And name it 'makeTestClan'
...
Exposing the function via clanLib makes it more accessible to clan modules
This allows each module to define its own test without needing to depend on any fileSystem path assumptions in the clan-core repo
2025-04-15 18:17:40 +02:00
Johannes Kirschbauer
c357cfa29f
chore(lib/buildClan): remove dependencies {nixpkgs,nix-darwin} from the clanLib file
2025-04-08 22:13:46 +02:00
Johannes Kirschbauer
ce84c4cddb
chore(lib/modulesDocs): move dependency on clan-core and pkgs into function args
...
This is a good idea, to make lib agnostic from clan-core
The next step could be to rename the clan-core argument name
Or to explizitly pass the actual dependencies, instead of everything in
clan-core
2025-04-08 15:30:49 +02:00
Michael Hoang
6de4735c81
build-clan: support constructing darwinConfigurations
2025-04-08 08:53:29 +02:00
Johannes Kirschbauer
69078433cd
chore(lib/select): move into subfolder with a test file
2025-04-02 12:37:49 +02:00
Johannes Kirschbauer
2715c398cc
fix(inventory/interface): use explizit file dependency, until dependency injection works properly
2025-04-02 11:12:16 +02:00
Johannes Kirschbauer
2ab53b05fe
chore(lib/treewide): cleanup directory struture of lib. See lib/readme.md for details
2025-04-02 11:11:21 +02:00
Johannes Kirschbauer
2b392866d6
chore(buildClan): remove dependency on clan-core in the lib function
2025-04-02 09:49:54 +02:00
Johannes Kirschbauer
11701d5607
feat(lib/buildClan): turn lib/build-clan into a 'buildClanModule' with sub-features such as 'buildClan' and 'flakePartsModule'
2025-04-01 15:39:12 +02:00
Johannes Kirschbauer
f2e89d27fe
feat(lib/inventory): use clanLib instead of clan-core as internal specialArg. This has the benefit of beeing more narrow scoped.
2025-03-30 17:07:09 +02:00
Johannes Kirschbauer
06dd2ebf8c
feat(lib/modules): remove dependency on self
2025-03-30 16:12:01 +02:00
Johannes Kirschbauer
40740860c0
feat(lib): init callLib; helper to bootstrap clanLib
2025-03-30 16:11:04 +02:00
Johannes Kirschbauer
89bc39869c
chore(lib): prepare for refactoring into clanLib
2025-03-30 15:56:54 +02:00
lassulus
fe2cfd3b37
clan-cli: add a Flake class with caching
2025-02-02 11:52:36 +00:00
Johannes Kirschbauer
fca193073e
lib.values: init getPrio
...
This function can be used to get the priority of all values within a module
2024-12-04 17:37:23 +01:00
Johannes Kirschbauer
de4c6caf30
Ext/modules: expose module schemas
2024-11-21 17:02:34 +01:00
Johannes Kirschbauer
25fb899f64
Inventory: init external modules support
2024-11-21 15:38:17 +00:00
Johannes Kirschbauer
d5c2c1af67
modules/frontmatter: init module interface as source of frontmatter
2024-11-15 20:04:06 +01:00
Jörg Thalheim
fb65e4730d
eval-clan-modules: don't re-import nixpkgs
2024-10-09 13:48:32 +02:00
Johannes Kirschbauer
bca5724f41
Init: eval clanmodule interface with roles
2024-10-07 21:08:28 +00:00
Johannes Kirschbauer
8fd09b8403
Add build-clan module
2024-08-03 12:05:09 +02:00
a-kenji
1a969d884e
lib: add fact loaders to clan lib
2024-07-02 11:34:26 +00:00
Johannes Kirschbauer
3777a4cf02
Add toml frontmatter description to jsonschema
2024-06-26 15:10:36 +02:00
Johannes Kirschbauer
9b0e2a87e8
ClanModules: Add docs and api to retrieve metadata
2024-06-25 21:17:01 +02:00
Johannes Kirschbauer
3aa7a6ee69
Inventory: move to lib.inventory
2024-06-25 12:23:29 +00:00
Johannes Kirschbauer
13c3169b41
lib: eval clan module as lib function
2024-06-24 15:47:25 +02:00
Qubasa
6908527ebd
Throw error on missing clanModule description or if description too long. Add xfce description.
2024-05-02 17:53:27 +02:00
Qubasa
a48df5b993
Add package function-schema and module-schema. Add check for module jsonschema.
2024-05-01 23:16:17 +02:00
Jörg Thalheim
e296a3019d
re-format with nixfmt
2024-03-17 19:48:49 +01:00
DavHau
bf176ad277
api/machines: allow importing extra modules
...
- add top-level option `clanImports` to clanCore
- clanImports can be set and checked as any other option
- buildClan resolves the clanImports from the settings.json before calling evalModules to prevent infinite recursions
- new endpoint PUT machines/{name}/schema to allow getting the schema for a specific list of imports
- to retrieve the currently imported modules, cimply do a GET or PU on machines/{name}/config which will return `clanImports` as part of the config
Still missing: get list of available modules
2023-10-25 16:36:30 +01:00
Jörg Thalheim
293e7f8ae6
drop unused findNixFiles function
2023-09-28 14:21:03 +02:00
DavHau
03808d9fbc
buildClan: fix missing argument clan
2023-09-02 18:24:34 +02:00
Jörg Thalheim
1d496c6363
buildClan: also import clanCore module
2023-08-30 16:41:50 +02:00
Jörg Thalheim
72768573db
drop non-existent clan modules
2023-08-29 22:30:33 +02:00