Compare commits

..

4 commits

Author SHA1 Message Date
d5211287bd TEMP: use base 2026-02-18 20:13:43 +10:00
18e1a2c890 don't add pkgs to _module.args 2026-02-18 20:13:36 +10:00
232837d34a update TODO 2026-02-18 20:13:05 +10:00
f34c2fba39 rename base -> decl (easily confusable) 2026-02-18 20:12:58 +10:00
3 changed files with 15 additions and 13 deletions

View file

@ -27,8 +27,8 @@
- [ ] allow multiple privesc methods, the standard is pam_ssh_agent_auth - [ ] allow multiple privesc methods, the standard is pam_ssh_agent_auth
## Low Priority ## Low Priority
- [ ] rename extraModules to modules? - [X] rename extraModules to modules?
- [ ] rename specialArgs to args? - [X] rename specialArgs to args?
- [ ] make an extension to the nix module system (different to mix) - [ ] make an extension to the nix module system (different to mix)
that allows transformations (ie a stop post config, ie outputs, which that allows transformations (ie a stop post config, ie outputs, which
@ -44,6 +44,8 @@
- [ ] rewrite the ceru cli in rust - [ ] rewrite the ceru cli in rust
- [ ] make `ceru` do local and remote deployments - [ ] make `ceru` do local and remote deployments
- [ ] support `legacyImports`
```nix ```nix
# REF: foxora # REF: foxora
vms = { vms = {

View file

@ -93,13 +93,13 @@
Cerulean Nexus config must be provided as an attribute set, got "${typeOf nexus}" instead! Cerulean Nexus config must be provided as an attribute set, got "${typeOf nexus}" instead!
Ensure the `nexus` declaration is an attribute set under your call to `cerulean.mkNexus`. Ensure the `nexus` declaration is an attribute set under your call to `cerulean.mkNexus`.
''; let ''; let
base = nt.projectOnto templateNexus nexus; decl = nt.projectOnto templateNexus nexus;
in in
# XXX: TODO: create a different version of nt.projectOnto that can actually # XXX: TODO: create a different version of nt.projectOnto that can actually
# XXX: TODO: handle applying a transformation to the result of each datapoint # XXX: TODO: handle applying a transformation to the result of each datapoint
base decl
// { // {
groups = parseGroupDecl base.groups; groups = parseGroupDecl decl.groups;
}; };
parseDecl = outputsBuilder: let parseDecl = outputsBuilder: let

View file

@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
{ {
base,
lib, lib,
system, system,
config, config,
@ -73,17 +74,16 @@ in {
in { in {
# NOTE: _module.args is a special option that allows us to # NOTE: _module.args is a special option that allows us to
# NOTE: set extend specialArgs from inside the modules. # NOTE: set extend specialArgs from inside the modules.
_module.args = repos; # WARNING: pkgs is a reserved specialArg
_module.args = removeAttrs repos ["pkgs"];
nixpkgs = nixpkgs =
if contextName == "hosts" if contextName == "hosts"
then then {
# DEBUG: defaultPkgs flake.source = lib.mkOverride 200 base; # DEBUG: temp while getting base to work
{ overlays = lib.mkOverride 200 (defaultPkgs.overlays or {});
flake.source = lib.mkOverride 200 (defaultPkgs.source or null); config = lib.mkOverride 200 (defaultPkgs.config or {});
overlays = lib.mkOverride 200 (defaultPkgs.overlays or {}); }
config = lib.mkOverride 200 (defaultPkgs.config or {});
}
else if contextName == "homes" else if contextName == "homes"
then { then {
config = lib.mkOverride 200 (defaultPkgs.config or {}); config = lib.mkOverride 200 (defaultPkgs.config or {});