diff --git a/lib/pops.nix b/lib/pops.nix deleted file mode 100644 index 152245c..0000000 --- a/lib/pops.nix +++ /dev/null @@ -1,117 +0,0 @@ -let - baseInputs = omnibus.pops.lib.load.inputs; -in -{ - flake = flops.flake.pops.default.setInitInputs ( - inputs.self.outPath + "/local/lock" - ); - - load = - (flops.haumea.pops.default.setInit { inputs = baseInputs; }).addLoadExtender; - - data = flops.haumea.pops.default.setInit { - loader = with haumea; [ - matchers.json - matchers.toml - ]; - }; - allData = - (self.data.addLoadExtender { - load = { - loader = with haumea; [ - (matchers.regex "^(.+)\\.(yaml|yml)$" ( - _: _: path: - root.readYAML path - )) - ]; - }; - }); - - nixosModules = flops.haumea.pops.default.setInit { - src = inputs.self.outPath + "/units/nixos/nixosModules"; - type = "nixosModules"; - inputs = baseInputs; - }; - homeModules = flops.haumea.pops.default.setInit { - src = inputs.self.outPath + "/units/nixos/homeModules"; - type = "nixosModules"; - inputs = baseInputs; - }; - homeProfiles = self.homeModules.addLoadExtender { - load = { - src = inputs.self.outPath + "/units/nixos/homeProfiles"; - type = "nixosProfiles"; - transformer = [ (_: _: _) ]; - }; - }; - - nixosProfiles = self.nixosModules.addLoadExtender { - load = { - src = inputs.self.outPath + "/units/nixos/nixosProfiles"; - type = "nixosProfiles"; - transformer = [ (_: _: _) ]; - }; - }; - - darwinProfiles = self.nixosProfiles.addLoadExtender { - load = { - src = inputs.self.outPath + "/units/nixos/darwinProfiles"; - }; - }; - - darwinModules = self.nixosModules.addLoadExtender { - load.src = inputs.self.outPath + "/units/nixos/darwinModules"; - }; - - configs = flops.haumea.pops.default.setInit { - src = inputs.self.outPath + "/units/configs"; - inputs = baseInputs; - }; - - srvos = flops.haumea.pops.default.setInit { - src = self.flake.inputs.srvos + "/nixos"; - type = "nixosProfiles"; - # reset the transformer to the default - transformer = [ (_: _: _) ]; - }; - flake-parts = { - modules = self.nixosModules.addLoadExtender { - load.src = inputs.self.outPath + "/units/flake-parts/modules"; - }; - profiles = self.nixosProfiles.addLoadExtender { - load = { - src = inputs.self.outPath + "/units/flake-parts/profiles"; - }; - }; - }; - - devshellModules = self.nixosModules.addLoadExtender { - load = { - src = inputs.self.outPath + "/units/devshell/modules"; - type = "nixosModules"; - }; - }; - devshellProfiles = self.nixosProfiles.addLoadExtender { - load = { - src = inputs.self.outPath + "/units/devshell/profiles"; - type = "nixosProfiles"; - }; - }; - - exporter = flops.haumea.pops.default.setInit { - loader = with haumea; loaders.scoped; - inputs = { - inputs.self = self; - inherit - omnibus - POP - haumea - flops - lib - ; - inputs = { - inherit (inputs) dmerge; - }; - }; - }; -} diff --git a/lib/pops/allData.nix b/lib/pops/allData.nix new file mode 100644 index 0000000..4b49f3f --- /dev/null +++ b/lib/pops/allData.nix @@ -0,0 +1,10 @@ +(super.data.addLoadExtender { + load = { + loader = with haumea; [ + (matchers.regex "^(.+)\\.(yaml|yml)$" ( + _: _: path: + root.readYAML path + )) + ]; + }; +}) diff --git a/lib/pops/configs.nix b/lib/pops/configs.nix new file mode 100644 index 0000000..0685a9b --- /dev/null +++ b/lib/pops/configs.nix @@ -0,0 +1,4 @@ +flops.haumea.pops.default.setInit { + src = inputs.self.outPath + "/units/configs"; + inputs = omnibus.pops.lib.load.inputs; +} diff --git a/lib/pops/darwinModules.nix b/lib/pops/darwinModules.nix new file mode 100644 index 0000000..973b02c --- /dev/null +++ b/lib/pops/darwinModules.nix @@ -0,0 +1,3 @@ +super.nixosModules.addLoadExtender { + load.src = inputs.self.outPath + "/units/nixos/darwinModules"; +} diff --git a/lib/pops/darwinProfiles.nix b/lib/pops/darwinProfiles.nix new file mode 100644 index 0000000..5c52af8 --- /dev/null +++ b/lib/pops/darwinProfiles.nix @@ -0,0 +1,5 @@ +super.nixosProfiles.addLoadExtender { + load = { + src = inputs.self.outPath + "/units/nixos/darwinProfiles"; + }; +} diff --git a/lib/pops/data.nix b/lib/pops/data.nix new file mode 100644 index 0000000..3999d2f --- /dev/null +++ b/lib/pops/data.nix @@ -0,0 +1,6 @@ +flops.haumea.pops.default.setInit { + loader = with haumea; [ + matchers.json + matchers.toml + ]; +} diff --git a/lib/pops/devshellModules.nix b/lib/pops/devshellModules.nix new file mode 100644 index 0000000..b4fc278 --- /dev/null +++ b/lib/pops/devshellModules.nix @@ -0,0 +1,6 @@ +super.nixosModules.addLoadExtender { + load = { + src = inputs.self.outPath + "/units/devshell/modules"; + type = "nixosModules"; + }; +} diff --git a/lib/pops/devshellProfiles.nix b/lib/pops/devshellProfiles.nix new file mode 100644 index 0000000..0e0bdf5 --- /dev/null +++ b/lib/pops/devshellProfiles.nix @@ -0,0 +1,6 @@ +super.nixosProfiles.addLoadExtender { + load = { + src = inputs.self.outPath + "/units/devshell/profiles"; + type = "nixosProfiles"; + }; +} diff --git a/lib/pops/flake-parts.nix b/lib/pops/flake-parts.nix new file mode 100644 index 0000000..0cf055e --- /dev/null +++ b/lib/pops/flake-parts.nix @@ -0,0 +1,10 @@ +{ + modules = super.nixosModules.addLoadExtender { + load.src = inputs.self.outPath + "/units/flake-parts/modules"; + }; + profiles = super.nixosProfiles.addLoadExtender { + load = { + src = inputs.self.outPath + "/units/flake-parts/profiles"; + }; + }; +} diff --git a/lib/pops/flake.nix b/lib/pops/flake.nix new file mode 100644 index 0000000..2e317bd --- /dev/null +++ b/lib/pops/flake.nix @@ -0,0 +1 @@ +flops.flake.pops.default.setInitInputs (inputs.self.outPath + "/local/lock") diff --git a/lib/pops/homeModules.nix b/lib/pops/homeModules.nix new file mode 100644 index 0000000..cba4a71 --- /dev/null +++ b/lib/pops/homeModules.nix @@ -0,0 +1,5 @@ +flops.haumea.pops.default.setInit { + src = inputs.self.outPath + "/units/nixos/homeModules"; + type = "nixosModules"; + inputs = omnibus.pops.lib.load.inputs; +} diff --git a/lib/pops/homeProfiles.nix b/lib/pops/homeProfiles.nix new file mode 100644 index 0000000..e99e733 --- /dev/null +++ b/lib/pops/homeProfiles.nix @@ -0,0 +1,7 @@ +super.homeModules.addLoadExtender { + load = { + src = inputs.self.outPath + "/units/nixos/homeProfiles"; + type = "nixosProfiles"; + transformer = [ (_: _: _) ]; + }; +} diff --git a/lib/pops/load.nix b/lib/pops/load.nix new file mode 100644 index 0000000..ac57d3d --- /dev/null +++ b/lib/pops/load.nix @@ -0,0 +1,11 @@ +{ + flops, + omnibus, + haumea, +}: +load: +(flops.haumea.pops.default.setInit { + loader = with haumea; [ (matchers.nix loaders.scoped) ]; + inputs = omnibus.pops.lib.load.inputs; +}).addLoadExtender + { inherit load; } diff --git a/lib/pops/nixosModules.nix b/lib/pops/nixosModules.nix new file mode 100644 index 0000000..9b9f3ec --- /dev/null +++ b/lib/pops/nixosModules.nix @@ -0,0 +1,5 @@ +flops.haumea.pops.default.setInit { + src = inputs.self.outPath + "/units/nixos/nixosModules"; + type = "nixosModules"; + inputs = omnibus.pops.lib.load.inputs; +} diff --git a/lib/pops/nixosProfiles.nix b/lib/pops/nixosProfiles.nix new file mode 100644 index 0000000..ef5c5eb --- /dev/null +++ b/lib/pops/nixosProfiles.nix @@ -0,0 +1,7 @@ +super.nixosModules.addLoadExtender { + load = { + src = inputs.self.outPath + "/units/nixos/nixosProfiles"; + type = "nixosProfiles"; + transformer = [ (_: _: _) ]; + }; +} diff --git a/lib/pops/scripts.nix b/lib/pops/scripts.nix new file mode 100644 index 0000000..ed1228d --- /dev/null +++ b/lib/pops/scripts.nix @@ -0,0 +1,8 @@ +(super.load { + inputs = { + inherit (inputs) nixpkgs; + inherit (root.makes) makeScript; + }; + loader = with haumea; [ (matchers.nix loaders.scoped) ]; + transformer = [ (_cursor: dir: if dir ? default then dir.default else dir) ]; +}) diff --git a/lib/pops/srvos.nix b/lib/pops/srvos.nix new file mode 100644 index 0000000..d6fc381 --- /dev/null +++ b/lib/pops/srvos.nix @@ -0,0 +1,6 @@ +flops.haumea.pops.default.setInit { + src = super.flake.inputs.srvos + "/nixos"; + type = "nixosProfiles"; + # reset the transformer to the default + transformer = [ (_: _: _) ]; +} diff --git a/templates/nixos/flake.lock b/templates/nixos/flake.lock index f98596f..dfe5e6a 100644 --- a/templates/nixos/flake.lock +++ b/templates/nixos/flake.lock @@ -168,11 +168,11 @@ "flops": "flops" }, "locked": { - "lastModified": 1698920455, - "narHash": "sha256-VwNZFeYGUgG7Kz897r1lCmhsnKKtwIjkR1/RxPKoGzI=", + "lastModified": 1699008029, + "narHash": "sha256-RBBi5YWwJu8VgOcOXv9lEuMO6WTDZeJ2P5Mwpn9x8bg=", "owner": "gtrunsec", "repo": "omnibus", - "rev": "3a9d5ce4c4bbea24222bda5c9edb95b83f75ab56", + "rev": "6c3c230ba2ee7bbf522a3f26646581992a994950", "type": "github" }, "original": { diff --git a/tests/_snapshots/makes b/tests/_snapshots/makes index f785e80..6ffcc17 100644 --- a/tests/_snapshots/makes +++ b/tests/_snapshots/makes @@ -1,4 +1,7 @@ #pretty { makeScript = ; + scripts = { + example = ; + }; } \ No newline at end of file diff --git a/tests/darwin/expr.nix b/tests/darwin/expr.nix index cc34e9d..48a00b0 100644 --- a/tests/darwin/expr.nix +++ b/tests/darwin/expr.nix @@ -6,20 +6,19 @@ omnibus, }: let - exporter = root.nixos.pops.exports.default; + out = root.nixos.pops.exports.default; in { darwinFontProfile = - (exporter.layouts.darwinConfiguration [ + (out.layouts.darwinConfiguration [ omnibus.darwinProfiles.presets.homebrew omnibus.darwinProfiles.presets.nix.default { homebrew.__profiles__.enableFonts = true; } ]).config.homebrew.casks; darwinNixProfile = - (exporter.layouts.darwinConfiguration [ - omnibus.darwinProfiles.presets.nix.default - ]).config.nix.extraOptions; + (out.layouts.darwinConfiguration [ omnibus.darwinProfiles.presets.nix.default ]) + .config.nix.extraOptions; } // lib.optionalAttrs trace { } diff --git a/tests/makes/__fixture/example/default.nix b/tests/makes/__fixture/example/default.nix new file mode 100644 index 0000000..3029854 --- /dev/null +++ b/tests/makes/__fixture/example/default.nix @@ -0,0 +1,6 @@ +makeScript { + name = "runScriptWithEnv"; + searchPaths.bin = [ nixpkgs.awscli ]; + searchPaths.source = [ ./env ]; + entrypoint = ./entrypoint.sh; +} diff --git a/tests/makes/__fixture/example/entrypoint.sh b/tests/makes/__fixture/example/entrypoint.sh new file mode 100644 index 0000000..c360720 --- /dev/null +++ b/tests/makes/__fixture/example/entrypoint.sh @@ -0,0 +1 @@ +awscli --help diff --git a/tests/makes/__fixture/example/env b/tests/makes/__fixture/example/env new file mode 100644 index 0000000..ada6e47 --- /dev/null +++ b/tests/makes/__fixture/example/env @@ -0,0 +1,3 @@ +VAST_PEERED_VPC_ID=placeholder +VAST_CIDR=palceholder +VAST_AWS_REGION=placeholder diff --git a/tests/makes/expr.nix b/tests/makes/expr.nix index 224d41f..927040b 100644 --- a/tests/makes/expr.nix +++ b/tests/makes/expr.nix @@ -1,7 +1,7 @@ { omnibus, lib }: let inherit (omnibus.flake.inputs) nixpkgs makes; - makesLib = + omnibusLib = (omnibus.pops.lib.addLoadExtender { load = { inputs = { @@ -11,10 +11,17 @@ let }; }; }; - }).exports.default.makes; + }).exports.default; - inherit (makesLib) makeScript; + inherit (omnibusLib.makes) makeScript; in { - makeScript = makeScript; + scripts = + (omnibusLib.pops.scripts.addLoadExtender { + load = { + src = ./__fixture; + }; + }).exports.default; + + inherit makeScript; } diff --git a/tests/nixos/_pops.nix b/tests/nixos/_pops.nix index 9c57f2a..0a78b61 100644 --- a/tests/nixos/_pops.nix +++ b/tests/nixos/_pops.nix @@ -1,16 +1,14 @@ { omnibus, root, - flops, + haumea, }: -(omnibus.pops.exporter.addLoadExtender { - load = { - src = ./__fixture; +(omnibus.pops.load { + src = ./__fixture; + inputs = { + data = root.data; inputs = { - data = root.data; - inputs = { - inherit (omnibus.flake.inputs) darwin nixpkgs home-manager; - }; + inherit (omnibus.flake.inputs) darwin nixpkgs home-manager; }; }; }) diff --git a/array.ncl b/units/nickel/array.ncl similarity index 100% rename from array.ncl rename to units/nickel/array.ncl diff --git a/data_users.yml b/units/nickel/data_users.yml similarity index 100% rename from data_users.yml rename to units/nickel/data_users.yml