aboutsummaryrefslogtreecommitdiff
path: root/pkgs/tools/misc/diffoscope/list-missing-tools.sh
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas@tuxera.com>2018-07-19 02:31:23 +0300
committerTuomas Tynkkynen <tuomas@tuxera.com>2018-07-19 02:31:23 +0300
commita595896c5686881a73c6819fbc9b0d1967cfea60 (patch)
tree012072ac3c7b653a6018a9f14516c55556234661 /pkgs/tools/misc/diffoscope/list-missing-tools.sh
parent0a46f8c19897846db3d9fd2aa858b212a0f2a59d (diff)
diffoscope: Document the script to locate missing optional dependencies
And give it it a bit more descriptive name of list-missing-tools.sh.
Diffstat (limited to 'pkgs/tools/misc/diffoscope/list-missing-tools.sh')
-rwxr-xr-xpkgs/tools/misc/diffoscope/list-missing-tools.sh23
1 files changed, 23 insertions, 0 deletions
diff --git a/pkgs/tools/misc/diffoscope/list-missing-tools.sh b/pkgs/tools/misc/diffoscope/list-missing-tools.sh
new file mode 100755
index 000000000000..5f4d118cfed7
--- /dev/null
+++ b/pkgs/tools/misc/diffoscope/list-missing-tools.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+# This script lists all the optional command-line tools that diffoscope can use
+# (i.e. `diffoscope --list-tools`) but are missing from the Nix expression.
+
+diffoscope=$(nix-build --no-out-link -E 'with import ./. {}; diffoscope.override { enableBloat = true; }')/bin/diffoscope
+
+required=$($diffoscope --list-tools | \
+ grep '^External-Tools-Required:' | \
+ cut -d ' ' -f2- | \
+ tr -d ,)
+
+# Uber-hacky!
+pathScript=$(cat $diffoscope | grep PATH)
+
+export PATH=$(nix-build --no-out-link -A which)/bin
+eval "$pathScript"
+
+for tool in $required; do
+ if ! which $tool >/dev/null 2>&1; then
+ echo $tool
+ fi
+done | sort