aboutsummaryrefslogtreecommitdiff
path: root/apkg-deps
diff options
context:
space:
mode:
authoremmett1 <emmett1.2miligrams@protonmail.com>2024-05-22 00:04:45 +0800
committeremmett1 <emmett1.2miligrams@protonmail.com>2024-05-22 00:04:45 +0800
commit7f803249b673228189421c37c5f5fbf4b3d79c3f (patch)
treedcb532a3ecab23589f54843c48194afd48f93656 /apkg-deps
parentcf7e15afc0af0b15436a79d125703af5105be67b (diff)
downloadautils-7f803249b673228189421c37c5f5fbf4b3d79c3f.tar.gz
autils-7f803249b673228189421c37c5f5fbf4b3d79c3f.zip
updated
Diffstat (limited to 'apkg-deps')
-rwxr-xr-xapkg-deps29
1 files changed, 29 insertions, 0 deletions
diff --git a/apkg-deps b/apkg-deps
new file mode 100755
index 0000000..2ae07dc
--- /dev/null
+++ b/apkg-deps
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+PKGDB=/var/lib/spm/db
+
+if [ ! "$1" ]; then
+ echo "usage: $0 <pkg>"
+ exit 0
+fi
+
+if [ ! -s "$PKGDB/$1" ]; then
+ echo "Package '$1' not installed"
+ exit 0
+fi
+
+f=$(spm -l $1 | awk '/(sbin|bin|lib)\//')
+
+for i in $f; do
+ [ -x /$i ] || continue
+ deps="$deps $(ldd /$i 2>/dev/null | awk '!/(ldd)|(linux-gate)|( dynamic)|(not found)/ {print $3}')"
+done
+
+deps=$(for i in $deps; do realpath $i; done | sort | uniq)
+pkg=$(for i in $deps; do spm -o $i | awk '{print $1}'; done | sort | uniq | grep -v $1)
+
+if [ "$pkg" ]; then
+ echo $pkg | tr ' ' '\n'
+fi
+
+exit 0