summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorseth <[email protected]>2023-12-28 23:01:41 -0500
committerseth <[email protected]>2023-12-28 23:01:41 -0500
commitab3ea6d89795f0413b0e7a4b5c65bff989f7f284 (patch)
treea0170377a81b34f75a120d7889ab691f1d2d6741
parent0293681c28ff303b2842ad70e4c4ee7d49db9a6f (diff)
ci: make hydraJobs a bit neater
-rw-r--r--dev/ci.nix34
-rw-r--r--dev/shell.nix1
-rw-r--r--systems/default.nix2
-rw-r--r--users/default.nix36
4 files changed, 37 insertions, 36 deletions
diff --git a/dev/ci.nix b/dev/ci.nix
index 94eac3e..48ca6d1 100644
--- a/dev/ci.nix
+++ b/dev/ci.nix
@@ -5,29 +5,29 @@
}: {
flake.hydraJobs = let
ciSystems = ["x86_64-linux" "x86_64-darwin"];
- recursiveMerge = builtins.foldl' lib.recursiveUpdate {};
+ getOutputs = lib.getAttrs ciSystems;
in
- recursiveMerge [
- (let
- outputs = lib.getAttrs ["checks" "devShells"] self;
- isCompatible = system: _: lib.elem system ciSystems;
- in
- lib.mapAttrs (_: lib.filterAttrs isCompatible) outputs)
+ lib.attrsets.mergeAttrsList [
+ {
+ checks = getOutputs self.checks;
+ devShells = getOutputs self.devShells;
+ homeConfigurations = lib.mapAttrs (_: v:
+ lib.mapAttrs (_: v: v.activationPackage) v.homeConfigurations)
+ (getOutputs self.legacyPackages);
+ }
(
let
- configurations =
- lib.getAttrs [
- "nixosConfigurations"
- "darwinConfigurations"
- "homeConfigurations"
- ]
- self;
+ toDerivs = lib.mapAttrs (_: configuration: configuration.config.system.build.toplevel);
+ toCompatible = lib.filterAttrs (_: configuration: lib.elem configuration.pkgs.system ciSystems);
+ getConfigurationsFor = type: toDerivs (toCompatible self.${type});
- isCompatible = _: configuration: lib.elem configuration.pkgs.system ciSystems;
- toDeriv = _: configuration: configuration.config.system.build.toplevel or configuration.activationPackage;
+ configurations = [
+ "nixosConfigurations"
+ "darwinConfigurations"
+ ];
in
- lib.mapAttrs (_: v: lib.mapAttrs toDeriv (lib.filterAttrs isCompatible v)) configurations
+ lib.genAttrs configurations getConfigurationsFor
)
];
}
diff --git a/dev/shell.nix b/dev/shell.nix
index b187c53..daf9066 100644
--- a/dev/shell.nix
+++ b/dev/shell.nix
@@ -24,6 +24,7 @@
fzf
just
jq
+ nix-eval-jobs
opentofu' # see ../terranix/
]
++ lib.optional stdenv.isLinux inputs'.agenix.packages.agenix;
diff --git a/systems/default.nix b/systems/default.nix
index 6ee78ad..47f6bf6 100644
--- a/systems/default.nix
+++ b/systems/default.nix
@@ -73,7 +73,7 @@ in {
};
};
- openwrtConfigurations.turret = withSystem "x86_64-linux" ({pkgs, ...}:
+ legacyPackages.x86_64-linux.turret = withSystem "x86_64-linux" ({pkgs, ...}:
pkgs.callPackage ./turret {
inherit (inputs) openwrt-imagebuilder;
});
diff --git a/users/default.nix b/users/default.nix
index 8aaa0bb..4f81fbb 100644
--- a/users/default.nix
+++ b/users/default.nix
@@ -1,17 +1,19 @@
{
- lib,
- withSystem,
inputs,
self,
...
-}: let
- /*
- basic homeManagerConfiguration wrapper. defaults to x86_64-linux
- and gives basic, nice defaults
- */
- mkUser = name: args:
- inputs.hm.lib.homeManagerConfiguration (args
- // {
+}: {
+ perSystem = {
+ lib,
+ pkgs,
+ inputs',
+ ...
+ }: let
+ # basic homeManagerConfiguration wrapper with nice defaults
+ mkUser = name: args:
+ inputs.hm.lib.homeManagerConfiguration (lib.recursiveUpdate args {
+ pkgs = args.pkgs or pkgs;
+
modules =
[
./${name}/home.nix
@@ -24,16 +26,14 @@
++ (args.modules or []);
extraSpecialArgs = {
- inherit inputs self;
- inputs' = withSystem (args.system or "x86_64-linux") ({inputs', ...}: inputs');
+ inherit inputs inputs' self;
};
-
- pkgs = args.pkgs or inputs.nixpkgs.legacyPackages."x86_64-linux";
});
- mapUsers = lib.mapAttrs mkUser;
-in {
- flake.homeConfigurations = mapUsers {
- seth = {};
+ mapUsers = lib.mapAttrs mkUser;
+ in {
+ legacyPackages.homeConfigurations = mapUsers {
+ seth = {};
+ };
};
}