xref: /aosp_15_r20/external/toybox/scripts/probes/cmd2dpkg (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker#!/bin/bash
2*cf5a6c84SAndroid Build Coastguard Worker
3*cf5a6c84SAndroid Build Coastguard Worker# Show debian packages host versions of each command live in
4*cf5a6c84SAndroid Build Coastguard Worker# (Alas, not as useful as I thought it would be.)
5*cf5a6c84SAndroid Build Coastguard Worker
6*cf5a6c84SAndroid Build Coastguard Worker[ -x toybox ] || { echo "no ./toybox" >&2; exit 1; }
7*cf5a6c84SAndroid Build Coastguard Worker
8*cf5a6c84SAndroid Build Coastguard Workerdeclare -A ray
9*cf5a6c84SAndroid Build Coastguard Worker
10*cf5a6c84SAndroid Build Coastguard Worker# Sad that this is NOT in the default path, but less dumb than /bin/sh->dash
11*cf5a6c84SAndroid Build Coastguard WorkerPATH="$PATH":/sbin:/usr/sbin
12*cf5a6c84SAndroid Build Coastguard Worker
13*cf5a6c84SAndroid Build Coastguard Worker# Only checks installed packages, puts anything it can't find in none:
14*cf5a6c84SAndroid Build Coastguard Workerfor i in $(./toybox)
15*cf5a6c84SAndroid Build Coastguard Workerdo
16*cf5a6c84SAndroid Build Coastguard Worker  tty -s && echo -n . >&2
17*cf5a6c84SAndroid Build Coastguard Worker  which $i >/dev/null || { ray["none:"]+=" $i"; continue; }
18*cf5a6c84SAndroid Build Coastguard Worker
19*cf5a6c84SAndroid Build Coastguard Worker  ray[$(dpkg-query -S $(readlink -f $(which $i)) | toybox cut -DF 1)]+=" $i"
20*cf5a6c84SAndroid Build Coastguard Workerdone
21*cf5a6c84SAndroid Build Coastguard Worker
22*cf5a6c84SAndroid Build Coastguard Worker# Print results
23*cf5a6c84SAndroid Build Coastguard Workerfor i in ${!ray[@]}
24*cf5a6c84SAndroid Build Coastguard Workerdo
25*cf5a6c84SAndroid Build Coastguard Worker  echo $i ${ray[$i]}
26*cf5a6c84SAndroid Build Coastguard Workerdone
27