summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthew Justin Bauer <mjbauer95@gmail.com>2018-03-27 21:21:52 -0500
committerGitHub <noreply@github.com>2018-03-27 21:21:52 -0500
commit2162eb4bedc49b18ccb6386d946aad9a0c1680a8 (patch)
tree05bb6973ebfe488732615f0f0bc07227a77e5679
parent75616ceb49d4e51a3c8efbebc17c09553707fb2c (diff)
parent52f4be2c1fd6d430437f917ec886cb12798efdb4 (diff)
downloadnixlib-2162eb4bedc49b18ccb6386d946aad9a0c1680a8.tar
nixlib-2162eb4bedc49b18ccb6386d946aad9a0c1680a8.tar.gz
nixlib-2162eb4bedc49b18ccb6386d946aad9a0c1680a8.tar.bz2
nixlib-2162eb4bedc49b18ccb6386d946aad9a0c1680a8.tar.lz
nixlib-2162eb4bedc49b18ccb6386d946aad9a0c1680a8.tar.xz
nixlib-2162eb4bedc49b18ccb6386d946aad9a0c1680a8.tar.zst
nixlib-2162eb4bedc49b18ccb6386d946aad9a0c1680a8.zip
Merge pull request #37953 from obsidiansystems/unixtools
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 {