summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-03-27 20:26:10 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-03-27 20:26:10 -0400
commit52f4be2c1fd6d430437f917ec886cb12798efdb4 (patch)
tree6f9499331c44de9b830cfee1b172060d550f1a34
parent49455d7bae2f81c5c984faa6728c9017123fa798 (diff)
downloadnixlib-52f4be2c1fd6d430437f917ec886cb12798efdb4.tar
nixlib-52f4be2c1fd6d430437f917ec886cb12798efdb4.tar.gz
nixlib-52f4be2c1fd6d430437f917ec886cb12798efdb4.tar.bz2
nixlib-52f4be2c1fd6d430437f917ec886cb12798efdb4.tar.lz
nixlib-52f4be2c1fd6d430437f917ec886cb12798efdb4.tar.xz
nixlib-52f4be2c1fd6d430437f917ec886cb12798efdb4.tar.zst
nixlib-52f4be2c1fd6d430437f917ec886cb12798efdb4.zip
unixtools: Utilize meta.platforms
-rw-r--r--pkgs/top-level/unix-tools.nix23
1 files changed, 12 insertions, 11 deletions
diff --git a/pkgs/top-level/unix-tools.nix b/pkgs/top-level/unix-tools.nix
index 2e2cc3cea880..0d6e8d1c6c2d 100644
--- a/pkgs/top-level/unix-tools.nix
+++ b/pkgs/top-level/unix-tools.nix
@@ -12,19 +12,20 @@
 
 let
 
-  singleBinary = cmd: providers:
-    if builtins.hasAttr hostPlatform.parsed.kernel.name providers then
-      runCommand cmd {} ''
-        mkdir -p $out/bin
+  singleBinary = cmd: providers: let
+      provider = "${providers.${hostPlatform.parsed.kernel.name} or "missing-package"}/bin/${cmd}";
+    in runCommand cmd {
+      meta.platforms = map (n: { kernel.name = n; }) (pkgs.lib.attrNames providers);
+    } ''
+      mkdir -p $out/bin
 
-        if ! [ -x "${providers.${hostPlatform.parsed.kernel.name}}/bin/${cmd}" ]; then
-          echo "Cannot find command ${cmd}"
-          exit 1
-        fi
+      if ! [ -x "${provider}" ]; then
+        echo "Cannot find command ${cmd}"
+        exit 1
+      fi
 
-        ln -s ${providers.${hostPlatform.parsed.kernel.name}}/bin/${cmd} $out/bin/${cmd}
-      ''
-    else throw "${hostPlatform.parsed.kernel.name} does not have ${cmd}";
+      ln -s "${provider}" "$out/bin/${cmd}"
+    '';
 
 in rec {