apkg-redundantdeps (781B)
1 #!/bin/sh 2 # 3 # find redundant dependencies 4 5 print_help() { 6 cat <<EOF 7 usage: 8 $0 [-f] <pkgs> 9 10 options: 11 -f fix (remove) redundant pkg from depends 12 13 EOF 14 exit 0 15 } 16 17 if [ "$1" ]; then 18 while [ "$1" ]; do 19 case $1 in 20 -f) fix=1;; 21 -h) print_help;; 22 *) pkg="$pkg $1";; 23 esac 24 shift 25 done 26 fi 27 28 [ "$pkg" ] || pkg=$(apkg -D $(apkg -s)) 29 30 for i in $pkg; do 31 [ "$(apkg -d $i )" ] || continue 32 for d in $(apkg -d $i); do 33 for dd in $(apkg -d $i); do 34 [ "$dd" = "$d" ] && continue 35 [ "$(apkg -D $d | grep -x $dd)" ] && { 36 echo "[$i] $dd (already pulled from $d)" 37 if [ "$fix" ]; then 38 sed -i "/^$dd$/d" $(apkg -p $i)/depends 39 echo " $dd is removed from $i depends" 40 [ -s $(apkg -p $i)/depends ] || rm $(apkg -p $i)/depends 41 fi 42 } 43 done 44 done 45 done 46 47 exit 0