hosts: set nixpkgs.pkgs based on nixpkgs.system

This commit is contained in:
Pacman99 2021-03-15 19:04:28 -07:00
parent 2961c1ea52
commit aec7c92cc7
4 changed files with 40 additions and 37 deletions

View file

@ -36,47 +36,45 @@
extern = import ./extern { inherit inputs; };
pkgs' = os.mkPkgs;
multiPkgs = os.mkPkgs;
outputs =
let
system = "x86_64-linux";
pkgs = pkgs'.${system};
in
{
nixosConfigurations =
import ./hosts (nixos.lib.recursiveUpdate inputs {
inherit pkgs system extern;
inherit (pkgs) lib;
outputs = {
nixosConfigurations =
import ./hosts (nixos.lib.recursiveUpdate inputs {
inherit multiPkgs extern;
defaultSystem = "x86_64-linux";
lib = nixos.lib.extend (final: prev: {
dev = self.lib;
});
});
nixosModules =
let moduleList = import ./modules/module-list.nix;
in lib.pathsToImportedAttrs moduleList;
nixosModules =
let moduleList = import ./modules/module-list.nix;
in lib.pathsToImportedAttrs moduleList;
overlay = import ./pkgs;
overlays = lib.pathsToImportedAttrs (lib.pathsIn ./overlays);
overlay = import ./pkgs;
overlays = lib.pathsToImportedAttrs (lib.pathsIn ./overlays);
lib = import ./lib { inherit nixos pkgs self inputs; };
lib = import ./lib { inherit nixos self inputs; };
templates.flk.path = ./.;
templates.flk.description = "flk template";
defaultTemplate = self.templates.flk;
templates.flk.path = ./.;
templates.flk.description = "flk template";
defaultTemplate = self.templates.flk;
deploy.nodes = os.mkNodes deploy self.nixosConfigurations;
deploy.nodes = os.mkNodes deploy self.nixosConfigurations;
checks =
let
tests = import ./tests { inherit self pkgs; };
deployChecks = builtins.mapAttrs
(system: deployLib: deployLib.deployChecks self.deploy)
deploy.lib;
in
nixos.lib.recursiveUpdate tests deployChecks;
};
checks =
let
tests = import ./tests { inherit self pkgs; };
deployChecks = builtins.mapAttrs
(system: deployLib: deployLib.deployChecks self.deploy)
deploy.lib;
in
nixos.lib.recursiveUpdate tests deployChecks;
};
systemOutputs = utils.lib.eachDefaultSystem (system:
let pkgs = pkgs'.${system}; in
let pkgs = multiPkgs.${system}; in
{
packages = utils.lib.flattenTreeSystem system
(os.mkPackages { inherit pkgs; });

View file

@ -25,6 +25,10 @@ that you intend to use on your machine.
Additionally, this is the perfect place to import anything you might need from
the [nixos-hardware][nixos-hardware] repository.
> ##### _Note:_
> Set `nixpkgs.system` to the architecture of this host, default is "x86_64-linux".
> Keep in mind that not all packages are available for all architectures.
## Example
hosts/librem.nix:

View file

@ -3,9 +3,9 @@
, lib
, nixos
, override
, pkgs
, multiPkgs
, self
, system
, defaultSystem
, ...
}:
let
@ -27,7 +27,7 @@ let
modules;
};
global = {
global = { config, ... }: {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
@ -39,7 +39,7 @@ let
"home-manager=${home}"
];
nixpkgs = { inherit pkgs; };
nixpkgs.pkgs = lib.mkDefault multiPkgs.${config.nixpkgs.system};
nix.registry = {
devos.flake = self;
@ -79,7 +79,8 @@ let
};
in
dev.os.devosSystem {
inherit system specialArgs;
inherit specialArgs;
system = defaultSystem;
modules = modules // { inherit local lib; };
};

View file

@ -1,4 +1,4 @@
args@{ nixos, pkgs, self, ... }:
args@{ nixos, self, ... }:
let inherit (nixos) lib; in
lib.makeExtensible (final:
let callLibs = file: import file