Skip to content

Commit

Permalink
refactor: update flops
Browse files Browse the repository at this point in the history
  • Loading branch information
GTrunSec committed Oct 10, 2023
1 parent 48bb4db commit 73fbbae
Show file tree
Hide file tree
Showing 23 changed files with 150 additions and 98 deletions.
38 changes: 31 additions & 7 deletions docs/org/nixosProfiles.org
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,41 @@
** cloud

#+begin_src nix :tangle (concat (org-entry-get nil "PRJ-DIR" t) "/cloud.nix")
{ root }:
{
root,
omnibus,
POP,
flops,
inputs,
}:
let
inherit (inputs) dmerge;
srvosCustom =
(omnibus.pops.srvos.addExporters [
(POP.extendPop flops.haumea.pops.exporter (
self: super: {
exports.srvosCustom = self.outputs [ {
value = { selfModule }: removeAttrs selfModule [ "imports" ];
path = [
"common"
"default"
];
} ];
}
))
]).layouts.srvosCustom;
presets = root.presets;
in
with presets; {
default = [ {
boot.cleanTmpDir = true;
boot.tmp.cleanOnBoot = true;
zramSwap.enable = true;
documentation.enable = false;
} ];
default = [
srvosCustom.common.default
{
boot.cleanTmpDir = true;
boot.tmp.cleanOnBoot = true;
zramSwap.enable = true;
documentation.enable = false;
}
];

contabo = [
self.default
Expand Down
1 change: 1 addition & 0 deletions evalModules/flake-parts/modules/todo.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ }
12 changes: 6 additions & 6 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 8 additions & 7 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,18 @@
omnibus = {
inherit (self) pops;
inherit lib;
};
lib = import ./lib/__init.nix { inherit inputs omnibus; };
lib' = lib.layouts.default;
} // lib.exporter.flakeOutputs;

libPops = import ./lib/__init.nix { inherit inputs omnibus; };
lib = libPops.layouts.default;
in
lib'.exporter.flakeOutputs
lib.exporter.flakeOutputs
// {
pops = lib.layouts.default.exporter.pops // {
inherit lib;
pops = libPops.layouts.default.exporter.pops // {
lib = libPops;
};

lib = lib';
inherit lib;

templates.default = {
path = ./templates/nixos;
Expand Down
6 changes: 2 additions & 4 deletions lib/__init.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ let
inherit (inputs)
flops
haumea
dmerge
POP
self
;
Expand All @@ -13,13 +12,12 @@ flops.lib.haumea.pops.default.setInit {
loader = haumea.lib.loaders.scoped;
inputs = {
lib = flops.inputs.nixlib.lib // builtins;
self' = self;
haumea = haumea.lib;
POP = POP.lib;
flops = flops.lib;
inherit omnibus;
inputs = {
dmerge = inputs.flops.inputs.dmerge;
inputs = inputs // {
dmerge = flops.inputs.dmerge;
home-manager = omnibus.pops.loadInputs.outputs.home-manager;
};
};
Expand Down
6 changes: 5 additions & 1 deletion lib/exporter/flakeOutputs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,14 @@ let
;
in
{
inherit (outputs) srvos;
dotfiles = inputs.self.outPath + "/dotfiles";

devshellModules = outputs.devshell.loadModules;
devshellProfiles = outputs.devshell.loadProfiles;

flake-partsProfiles = outputs.flake-parts.loadProfiles;
flakePartsProfiles = outputs.flake-parts.loadProfiles;
flakePartsModules = outputs.flake-parts.loadModules;

nixosModules = outputs.loadNixOSModules;
nixosProfiles = outputs.loadNixOSProfiles;
Expand Down
46 changes: 21 additions & 25 deletions lib/exporter/pops.nix
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
let
baseInputs = {
inherit omnibus POP flops;
inputs = {
inherit (inputs) dmerge;
inherit lib;
};
};
in
{
dotfiles = self'.outPath + "/dotfiles";
loadInputs = flops.flake.pops.default.setInitInputs (
self'.outPath + "/local/lock"
inputs.self.outPath + "/local/lock"
);
loadData = flops.haumea.pops.default.setInit {
loader = with haumea; [
Expand All @@ -10,31 +18,25 @@
];
};
loadNixOSModules = flops.haumea.pops.default.setInit {
src = self'.outPath + "/nixos/nixosModules";
src = inputs.self.outPath + "/nixos/nixosModules";
type = "nixosModules";
inputs = {
POP = POP.lib;
flops = flops.lib;
omnibus = self;
};
inputs = baseInputs;
};
loadHomeModules = flops.haumea.pops.default.setInit {
src = self'.outPath + "/nixos/homeModules";
src = inputs.self.outPath + "/nixos/homeModules";
type = "nixosModules";
inputs = {
omnibus = self;
};
inputs = baseInputs;
};
loadHomeProfiles = self.loadHomeModules.addLoadExtender {
load = {
src = self'.outPath + "/nixos/homeProfiles";
src = inputs.self.outPath + "/nixos/homeProfiles";
loader = haumea.loaders.scoped;
type = "nixosProfiles";
};
};
loadNixOSProfiles = self.loadNixOSModules.addLoadExtender {
load = {
src = self'.outPath + "/nixos/nixosProfiles";
src = inputs.self.outPath + "/nixos/nixosProfiles";
type = "nixosProfiles";
};
};
Expand All @@ -46,39 +48,33 @@
};
flake-parts = {
loadModules = self.loadNixOSModules.addLoadExtender {
load.src = self'.outPath + "/evalModules/flake-parts/modules";
load.src = inputs.self.outPath + "/evalModules/flake-parts/modules";
};
loadProfiles = self.loadNixOSProfiles.addLoadExtender {
load = {
src = self'.outPath + "/evalModules/flake-parts/profiles";
inputs = {
omnibus.flake-parts.modules = self.flake-parts.modules.layouts.default;
};
src = inputs.self.outPath + "/evalModules/flake-parts/profiles";
};
};
};
devshell = rec {
loadModules = self.loadNixOSModules.addLoadExtender {
load = {
src = self'.outPath + "/evalModules/devshell/modules";
src = inputs.self.outPath + "/evalModules/devshell/modules";
type = "nixosModules";
};
};
loadProfiles = self.loadNixOSProfiles.addLoadExtender {
load = {
src = self'.outPath + "/evalModules/devshell/profiles";
src = inputs.self.outPath + "/evalModules/devshell/profiles";
type = "nixosProfiles";
inputs = {
omnibus.devshellModules = loadModules.layouts.default;
};
};
};
};

exporter = flops.haumea.pops.default.setInit {
loader = with haumea; loaders.scoped;
inputs = {
self' = self;
inputs.self = self;
inherit
omnibus
POP
Expand Down
38 changes: 31 additions & 7 deletions nixos/nixosProfiles/cloud.nix
Original file line number Diff line number Diff line change
@@ -1,15 +1,39 @@
# [[file:../../docs/org/nixosProfiles.org::*cloud][cloud:1]]
{ root }:
{
root,
omnibus,
POP,
flops,
inputs,
}:
let
inherit (inputs) dmerge;
srvosCustom =
(omnibus.pops.srvos.addExporters [
(POP.extendPop flops.haumea.pops.exporter (
self: super: {
exports.srvosCustom = self.outputs [ {
value = { selfModule }: removeAttrs selfModule [ "imports" ];
path = [
"common"
"default"
];
} ];
}
))
]).layouts.srvosCustom;
presets = root.presets;
in
with presets; {
default = [ {
boot.cleanTmpDir = true;
boot.tmp.cleanOnBoot = true;
zramSwap.enable = true;
documentation.enable = false;
} ];
default = [
srvosCustom.common.default
{
boot.cleanTmpDir = true;
boot.tmp.cleanOnBoot = true;
zramSwap.enable = true;
documentation.enable = false;
}
];

contabo = [
self.default
Expand Down
2 changes: 1 addition & 1 deletion nixos/nixosProfiles/presets/openssh.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{ omnibus }:
{
imports = [ omnibus.srvos.layouts.default.common.openssh ];
imports = [ omnibus.srvos.common.openssh ];
services.openssh = {
enable = true;
};
Expand Down
18 changes: 9 additions & 9 deletions templates/nixos/flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 4 additions & 12 deletions templates/nixos/flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,12 @@
"aarch64-linux"
"aarch64-darwin"
];
pops =
(inputs.omnibus.pops.exporter.addLoadExtender {
load = {
src = ./nix/lib;
inputs = {
self' = self;
inherit inputs eachSystem;
};
};
});
libPops = import ./nix/lib/__init.nix { inherit inputs eachSystem; };
lib = libPops.layouts.default;
in
{
inherit pops;
lib = pops.layouts.default;
inherit lib;
pop = libPops;
inherit (self.lib.exporter)
darwinConfigurations
nixosConfigurations
Expand Down
9 changes: 9 additions & 0 deletions templates/nixos/nix/lib/__init.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{ inputs, eachSystem }:
(inputs.omnibus.pops.exporter.addLoadExtender {
load = {
src = ./.;
inputs = {
inherit inputs eachSystem;
};
};
})
Loading

0 comments on commit 73fbbae

Please sign in to comment.