aboutsummaryrefslogtreecommitdiff
path: root/apkg-redundantdeps
diff options
context:
space:
mode:
authoremmett1 <emmett1.2miligrams@protonmail.com>2024-07-13 10:31:03 +0800
committeremmett1 <emmett1.2miligrams@protonmail.com>2024-07-13 10:31:03 +0800
commit61a182784b5378c98589a6450b86fa1a5e4416de (patch)
tree221ac6406489deec3bb22e314ce9c0ee9ded33dc /apkg-redundantdeps
parent73e405670670b4ff676d0fd26c4b9f9fdf63644c (diff)
downloadautils-61a182784b5378c98589a6450b86fa1a5e4416de.tar.gz
autils-61a182784b5378c98589a6450b86fa1a5e4416de.zip
updated
Diffstat (limited to 'apkg-redundantdeps')
-rwxr-xr-xapkg-redundantdeps44
1 files changed, 44 insertions, 0 deletions
diff --git a/apkg-redundantdeps b/apkg-redundantdeps
new file mode 100755
index 0000000..1afdce9
--- /dev/null
+++ b/apkg-redundantdeps
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# find redundant dependencies
+
+print_help() {
+ cat <<EOF
+usage:
+ $0 [-f] <pkgs>
+
+options:
+ -f fix (remove) redundant pkg from depends
+
+EOF
+exit 0
+}
+
+if [ "$1" ]; then
+ while [ "$1" ]; do
+ case $1 in
+ -f) fix=1;;
+ -h) print_help;;
+ *) pkg="$pkg $1";;
+ esac
+ shift
+ done
+fi
+
+[ "$pkg" ] || pkg=$(apkg -s)
+
+for i in $pkg; do
+ [ "$(apkg -d $i )" ] || continue
+ for d in $(apkg -d $i); do
+ for dd in $(apkg -d $i); do
+ [ "$dd" = "$d" ] && continue
+ [ "$(apkg -D $d | grep -x $dd)" ] && {
+ echo "[$i] $dd (already pulled from $d)"
+ if [ "$fix" ]; then
+ sed -i "/^$dd$/d" $(apkg -p $i)/depends
+ echo " $dd is removed from $i depends"
+ fi
+ }
+ done
+ done
+done