pkgs-lib: don't system space functions

have each function take pkgs as an argument, so a nixpkgs isn't created
just for pkgs-lib and they support more systems
This commit is contained in:
Pacman99 2021-04-25 16:36:48 -07:00
parent ba01aa7db7
commit 3986cc441b
4 changed files with 34 additions and 35 deletions

View File

@ -40,7 +40,7 @@
pkgs-lib = import ./pkgs-lib { pkgs-lib = import ./pkgs-lib {
lib = nixpkgs.lib // self; lib = nixpkgs.lib // self;
inherit nixpkgs deploy devshell; inherit deploy devshell;
}; };
inherit (attrs) inherit (attrs)

View File

@ -1,13 +1,6 @@
{ lib, nixpkgs, deploy, devshell }: { lib, deploy, devshell }:
{
tests = import ./tests { inherit lib deploy; };
shell = import ./shell { inherit lib devshell deploy; };
}
lib.genAttrs
lib.defaultSystems
(system:
let
pkgs = import nixpkgs { inherit system; };
in
{
tests = import ./tests { inherit lib deploy nixpkgs pkgs system; };
shell = import ./shell { inherit lib devshell deploy nixpkgs system; };
}
)

View File

@ -1,27 +1,30 @@
{ lib, nixpkgs, devshell, deploy, system }: { lib, devshell, deploy }:
{ pkgs }:
let let
overlays = [ overlays = [
devshell.overlay devshell.overlay
(final: prev: { (final: prev: {
deploy-rs = deploy-rs =
deploy.packages.${prev.system}.deploy-rs; deploy.packages.${prev.system}.deploy-rs;
}) })
]; ];
pkgs = import nixpkgs { inherit system overlays; config = { }; }; pkgs' = import pkgs.path {
inherit (pkgs) system;
inherit overlays;
};
flk = pkgs.callPackage ./flk.nix { }; flk = pkgs'.callPackage ./flk.nix { };
installPkgs = (lib.nixosSystem { installPkgs = (lib.nixosSystem {
inherit system; inherit (pkgs') system;
modules = [ ]; modules = [ ];
}).config.system.build; }).config.system.build;
in in
pkgs.devshell.mkShell { pkgs'.devshell.mkShell {
imports = [ (pkgs.devshell.importTOML ./devshell.toml) ]; imports = [ (pkgs'.devshell.importTOML ./devshell.toml) ];
packages = with installPkgs; [ packages = with installPkgs; [
nixos-install nixos-install
@ -33,13 +36,13 @@ pkgs.devshell.mkShell {
pre-commit.text = lib.fileContents ./pre-commit.sh; pre-commit.text = lib.fileContents ./pre-commit.sh;
}; };
commands = with pkgs; [ commands = with pkgs'; [
{ package = flk; } { package = flk; }
{ {
name = "nix"; name = "nix";
help = pkgs.nixFlakes.meta.description; help = pkgs'.nixFlakes.meta.description;
command = '' command = ''
${pkgs.nixFlakes}/bin/nix --experimental-features "nix-command flakes ca-references" "${"\${@}"}" ${pkgs'.nixFlakes}/bin/nix --experimental-features "nix-command flakes ca-references" "${"\${@}"}"
''; '';
} }
] ]

View File

@ -1,25 +1,28 @@
{ lib, nixpkgs, pkgs, deploy, system }: { lib, deploy }:
let let
mkChecks = { hosts, nodes, homes ? { } }: mkChecks = { pkgs, hosts, nodes, homes ? { } }:
let let
deployHosts = lib.filterAttrs deployHosts = lib.filterAttrs
(n: _: hosts.${n}.config.nixpkgs.system == system) (n: _: hosts.${n}.config.nixpkgs.system == pkgs.system)
nodes; nodes;
deployChecks = deploy.lib.${system}.deployChecks { nodes = deployHosts; }; deployChecks = deploy.lib.${pkgs.system}.deployChecks { nodes = deployHosts; };
tests = tests =
lib.optionalAttrs (deployHosts != { }) lib.optionalAttrs (deployHosts != { })
{ {
profilesTest = profilesTest (hosts.${(builtins.head (builtins.attrNames deployHosts))}); profilesTest = profilesTest {
inherit pkgs;
host = hosts.${(builtins.head (builtins.attrNames deployHosts))};
};
} // lib.mapAttrs (n: v: v.activationPackage) homes; } // lib.mapAttrs (n: v: v.activationPackage) homes;
in in
lib.recursiveUpdate tests deployChecks; lib.recursiveUpdate tests deployChecks;
mkTest = host: mkTest = { pkgs, host }:
let let
nixosTesting = nixosTesting =
(import "${nixpkgs}/nixos/lib/testing-python.nix" { (import "${toString pkgs.path}/nixos/lib/testing-python.nix" {
inherit system; inherit (pkgs) system;
inherit (host.config.lib) specialArgs; inherit (host.config.lib) specialArgs;
inherit pkgs; inherit pkgs;
extraConfigurations = [ extraConfigurations = [
@ -40,15 +43,15 @@ let
in in
nixosTesting.makeTest calledTest; nixosTesting.makeTest calledTest;
profilesTest = host: mkTest host { profilesTest = args@{ host, ... }: mkTest args {
name = "profiles"; name = "profiles";
machine = { suites, ... }: { machine = { suites, ... }: {
imports = suites.allProfiles ++ suites.allUsers; imports = suites.allProfiles;
}; };
testScript = '' testScript = ''
machine.systemctl("is-system-running --wait") ${host.config.networking.hostName}.systemctl("is-system-running --wait")
''; '';
}; };
in in