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

View file

@ -93,13 +93,13 @@
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`.
''; let
base = nt.projectOnto templateNexus nexus;
decl = nt.projectOnto templateNexus nexus;
in
# XXX: TODO: create a different version of nt.projectOnto that can actually
# 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

View file

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