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; }; extern = import ./extern { inherit inputs; };
pkgs' = os.mkPkgs; multiPkgs = os.mkPkgs;
outputs = outputs = {
let nixosConfigurations =
system = "x86_64-linux"; import ./hosts (nixos.lib.recursiveUpdate inputs {
pkgs = pkgs'.${system}; inherit multiPkgs extern;
in defaultSystem = "x86_64-linux";
{ lib = nixos.lib.extend (final: prev: {
nixosConfigurations = dev = self.lib;
import ./hosts (nixos.lib.recursiveUpdate inputs {
inherit pkgs system extern;
inherit (pkgs) lib;
}); });
});
nixosModules = nixosModules =
let moduleList = import ./modules/module-list.nix; let moduleList = import ./modules/module-list.nix;
in lib.pathsToImportedAttrs moduleList; in lib.pathsToImportedAttrs moduleList;
overlay = import ./pkgs; overlay = import ./pkgs;
overlays = lib.pathsToImportedAttrs (lib.pathsIn ./overlays); 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.path = ./.;
templates.flk.description = "flk template"; templates.flk.description = "flk template";
defaultTemplate = self.templates.flk; defaultTemplate = self.templates.flk;
deploy.nodes = os.mkNodes deploy self.nixosConfigurations; deploy.nodes = os.mkNodes deploy self.nixosConfigurations;
checks = checks =
let let
tests = import ./tests { inherit self pkgs; }; tests = import ./tests { inherit self pkgs; };
deployChecks = builtins.mapAttrs deployChecks = builtins.mapAttrs
(system: deployLib: deployLib.deployChecks self.deploy) (system: deployLib: deployLib.deployChecks self.deploy)
deploy.lib; deploy.lib;
in in
nixos.lib.recursiveUpdate tests deployChecks; nixos.lib.recursiveUpdate tests deployChecks;
}; };
systemOutputs = utils.lib.eachDefaultSystem (system: systemOutputs = utils.lib.eachDefaultSystem (system:
let pkgs = pkgs'.${system}; in let pkgs = multiPkgs.${system}; in
{ {
packages = utils.lib.flattenTreeSystem system packages = utils.lib.flattenTreeSystem system
(os.mkPackages { inherit pkgs; }); (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 Additionally, this is the perfect place to import anything you might need from
the [nixos-hardware][nixos-hardware] repository. 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 ## Example
hosts/librem.nix: hosts/librem.nix:

View file

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

View file

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