Skip to content

Commit 0630d6b

Browse files
author
Johan Thomsen
authored
Merge pull request #96 from johanot/optional-network-pkgs
Proposal: Changes to eval-machines
2 parents 3bade9f + f73a045 commit 0630d6b

1 file changed

Lines changed: 9 additions & 22 deletions

File tree

data/eval-machines.nix

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
{ networkExpr }:
33

44
let
5-
network = import networkExpr;
6-
pkgs = network.network.pkgs;
7-
lib = pkgs.lib;
5+
network = import networkExpr;
6+
nwPkgs = network.network.pkgs or {};
7+
lib = network.network.lib or nwPkgs.lib or (import <nixpkgs/lib>);
8+
evalConfig = network.network.evalConfig or "${nwPkgs.path or <nixpkgs>}/nixos/lib/eval-config.nix";
9+
runCommand = network.network.runCommand or nwPkgs.runCommand or ((import <nixpkgs> {}).runCommand);
810
in
9-
with pkgs;
1011
with lib;
1112

1213
rec {
@@ -20,7 +21,7 @@ rec {
2021
modules = [ { imports = [ network.${machineName} ]; } { inherit (network) _file; } ];
2122
in
2223
{ name = machineName;
23-
value = import "${toString pkgs.path}/nixos/lib/eval-config.nix" {
24+
value = import evalConfig {
2425
modules =
2526
modules ++
2627
[ ({ config, lib, options, ... }: {
@@ -31,22 +32,8 @@ rec {
3132
networking.hostName = lib.mkDefault machineName;
3233
deployment.targetHost = lib.mkDefault machineName;
3334

34-
# Apply network-level nixpkgs arguments as a baseline for
35-
# per-machine nixpkgs arguments; mkDefault'ed so they
36-
# can be overridden from within each machine
37-
nixpkgs.localSystem = lib.mkDefault pkgs.buildPlatform;
38-
nixpkgs.crossSystem = lib.mkDefault pkgs.hostPlatform;
39-
nixpkgs.overlays = lib.mkDefault pkgs.overlays;
40-
nixpkgs.pkgs = lib.mkDefault (import pkgs.path ({
41-
inherit (config.nixpkgs) localSystem;
42-
# Merge nixpkgs.config using its merge function
43-
config = options.nixpkgs.config.type.merge ""
44-
([ { value = pkgs.config; } options.nixpkgs.config ]);
45-
} // lib.optionalAttrs (config.nixpkgs.localSystem != config.nixpkgs.crossSystem) {
46-
# Only override crossSystem if it is not equivalent to
47-
# localSystem; works around issue #68
48-
inherit (config.nixpkgs) crossSystem;
49-
}));
35+
# If network.pkgs is set, mkDefault nixpkgs.pkgs
36+
nixpkgs.pkgs = lib.mkIf (nwPkgs != {}) (lib.mkDefault nwPkgs);
5037
})
5138
];
5239
extraArgs = { inherit nodes ; name = machineName; };
@@ -88,7 +75,7 @@ rec {
8875
# Phase 2: build complete machine configurations.
8976
machines = { names, buildTargets ? null }:
9077
let nodes' = filterAttrs (n: v: elem n names) nodes; in
91-
pkgs.runCommand "morph"
78+
runCommand "morph"
9279
{ preferLocalBuild = true; }
9380
(if buildTargets == null
9481
then ''

0 commit comments

Comments
 (0)