diff options
| author | seth <[email protected]> | 2023-12-28 23:01:41 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2023-12-28 23:01:41 -0500 |
| commit | ab3ea6d89795f0413b0e7a4b5c65bff989f7f284 (patch) | |
| tree | a0170377a81b34f75a120d7889ab691f1d2d6741 | |
| parent | 0293681c28ff303b2842ad70e4c4ee7d49db9a6f (diff) | |
ci: make hydraJobs a bit neater
| -rw-r--r-- | dev/ci.nix | 34 | ||||
| -rw-r--r-- | dev/shell.nix | 1 | ||||
| -rw-r--r-- | systems/default.nix | 2 | ||||
| -rw-r--r-- | users/default.nix | 36 |
4 files changed, 37 insertions, 36 deletions
@@ -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 = {}; + }; }; } |
