about summary refs log tree commit diff
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2016-02-08 14:30:24 +0100
committeraszlig <aszlig@redmoonstudios.org>2016-02-08 14:33:34 +0100
commitfcf2866023abcf971f9aa21a795cb6fef57627b5 (patch)
tree798a8715399bf0d06f8029d6f93535338c51eee3
parente01247cb10c8fdf4b36db609b3f2b80303a28ac8 (diff)
lib/call-machine: Introduce .build shortcut
The shortcut is mainly to make things a bit easier, instead of:

nix-build '<vuizvui/machines>' \
  -A aszlig.tishtushi.eval.config.system.build.toplevel

We can now do something like this:

nix-build '<vuizvui/machines>' \
  -A aszlig.tishtushi.build

... in order to get a system store path out of a machine definition.

This also fixes an evaluation error in the top-level default.nix. Thanks
to @Profpatsch for bringing this to my attention.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
-rw-r--r--default.nix7
-rw-r--r--lib/call-machine.nix1
-rw-r--r--release.nix6
3 files changed, 8 insertions, 6 deletions
diff --git a/default.nix b/default.nix
index f2ea79e2..a6ac9441 100644
--- a/default.nix
+++ b/default.nix
@@ -3,9 +3,10 @@
 with (import (import ./nixpkgs-path.nix) { inherit system; }).lib;
 
 {
-  machines = mapAttrsRecursiveCond (m: !(m ? build)) (path: attrs:
-    attrs.build.config.system.build.toplevel
-  ) (import ./machines { inherit system; });
+  machines = let
+    getBuild = const (getAttr "build");
+    allMachines = import ./machines { inherit system; };
+  in mapAttrsRecursiveCond (m: !(m ? eval)) getBuild allMachines;
 
   pkgs = import ./pkgs {
     pkgs = import (import ./nixpkgs-path.nix) args;
diff --git a/lib/call-machine.nix b/lib/call-machine.nix
index 95539114..0844e4eb 100644
--- a/lib/call-machine.nix
+++ b/lib/call-machine.nix
@@ -60,5 +60,6 @@ let
   }).vm;
 
 in {
+  build = eval.config.system.build.toplevel;
   inherit config eval iso vm;
 }
diff --git a/release.nix b/release.nix
index 04bc5218..74cf1149 100644
--- a/release.nix
+++ b/release.nix
@@ -48,9 +48,9 @@ let
 
 in with pkgsUpstream.lib; with builtins; {
 
-  machines = mapAttrsRecursiveCond (m: !(m ? eval)) (path: attrs:
-    attrs.eval.config.system.build.toplevel
-  ) allMachines;
+  machines = let
+    getBuild = const (getAttr "build");
+  in mapAttrsRecursiveCond (m: !(m ? eval)) getBuild allMachines;
 
   isoImages = let
     buildIso = attrs: let