diff options
Diffstat (limited to 'apkg-redundantdeps')
| -rwxr-xr-x | apkg-redundantdeps | 44 |
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 |