autils

Unnamed repository; edit this file 'description' to name the repository.
git clone https://codeberg.org/emmett1/autils
Log | Files | Refs | README | LICENSE

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