about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorNicolas B. Pierron <nicolas.b.pierron@gmail.com>2014-12-19 22:33:24 +0100
committerNicolas B. Pierron <nicolas.b.pierron@gmail.com>2014-12-19 22:33:24 +0100
commit9db6a84f0bcce1602f17eca3fa17f5a016a93aac (patch)
tree6f1c108500a313c7364a797d6b261ef0688a8c59 /nixos
parentd15cd4875f7d20f6e1db6fa83852da5af466d208 (diff)
downloadnixlib-9db6a84f0bcce1602f17eca3fa17f5a016a93aac.tar
nixlib-9db6a84f0bcce1602f17eca3fa17f5a016a93aac.tar.gz
nixlib-9db6a84f0bcce1602f17eca3fa17f5a016a93aac.tar.bz2
nixlib-9db6a84f0bcce1602f17eca3fa17f5a016a93aac.tar.lz
nixlib-9db6a84f0bcce1602f17eca3fa17f5a016a93aac.tar.xz
nixlib-9db6a84f0bcce1602f17eca3fa17f5a016a93aac.tar.zst
nixlib-9db6a84f0bcce1602f17eca3fa17f5a016a93aac.zip
nixos-option: Print the outPath of derivation for option values.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/installer/tools/nixos-option.sh13
1 files changed, 12 insertions, 1 deletions
diff --git a/nixos/modules/installer/tools/nixos-option.sh b/nixos/modules/installer/tools/nixos-option.sh
index 96d09c3a6058..a2b963d7661b 100644
--- a/nixos/modules/installer/tools/nixos-option.sh
+++ b/nixos/modules/installer/tools/nixos-option.sh
@@ -76,7 +76,18 @@ evalAttr(){
   local prefix="$1"
   local strict="$2"
   local suffix="$3"
-  echo "(import <nixos> {}).$prefix${option:+.$option}${suffix:+.$suffix}" | evalNix ${strict:+--strict}
+  evalNix ${strict:+--strict} <<EOF
+let
+  reach = attrs: attrs${option:+.$option}${suffix:+.$suffix};
+  nixos = import <nixos> {};
+  nixpkgs = import <nixpkgs> {};
+  cleanOutput = x: with nixpkgs.lib;
+    if isDerivation x then x.outPath
+    else if isFunction x then "<CODE>"
+    else x;
+in
+  cleanOutput (reach nixos.$prefix)
+EOF
 }
 
 evalOpt(){