apkg-purge (914B)
1 #!/bin/sh -e 2 # 3 # script for purge package and its dependencies from system 4 5 purge() { 6 for j in $(apkg -j $1); do 7 [ "$(apkg -a ^$j$)" ] && { 8 echo "[$1] dependent package is installed: $j" 9 error=1 10 } 11 done 12 [ "$error" ] && return 1 13 14 for i in $(apkg -d $1); do 15 [ "$(apkg -a ^$i$)" ] || continue 16 for d in $(apkg -j $i); do 17 [ "$d" = "$1" ] && continue 18 [ "$(apkg -a ^$d$)" ] && continue 2 19 done 20 if [ "$purgeit" ]; then 21 spm -r $i 22 else 23 echo $i 24 fi 25 done 26 if [ "$purgeit" ]; then 27 spm -r $1 28 else 29 echo $1 30 fi 31 } 32 33 help() { 34 cat <<EOF 35 usage: 36 $0 [-p] <pkgs> 37 38 option: 39 -p remove from system 40 41 EOF 42 exit 0 43 } 44 45 while [ "$1" ]; do 46 case $1 in 47 -p) purgeit=1;; 48 -h) help;; 49 *) pkg="$pkg $1";; 50 esac 51 shift 52 done 53 54 for p in $pkg; do 55 apkg -p $p >/dev/null || continue # skip if package not exist in repo 56 apkg -a | grep -qx $p || continue # skip if package not installed 57 purge $p 58 done 59 60 exit 0