aboutsummaryrefslogtreecommitdiff
path: root/apkg-purge
blob: 3ea1d37e69ad07f5bdb770c5a98ca907caf36781 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/sh -e
#
# script for purge package and its dependencies from system
#

purge() {
	for j in $(apkg -j $1); do
		apkg -a | grep -qx $j && {
			echo "[$1] dependent package is installed: $j"
			error=1
		}
	done
	[ "$error" ] && return 1

	for i in $(apkg -d $1); do
		apkg -a | grep -qx $i || continue
		for d in $(apkg -j $i); do
			[ "$d" = "$1" ] && continue
			apkg -a | grep -qx $d && continue 2
		done
		if [ "$purgeit" ]; then
			spm -r $i
		else
			echo $i
		fi
	done
	if [ "$purgeit" ]; then
		spm -r $1
	fi
}

help() {
	cat <<EOF
usage:
	$0 [-p] <pkgs>
	
option:
	-p  remove from system
	
EOF
exit 0
}

while [ "$1" ]; do
	case $1 in
		-p) purgeit=1;;
		-h) help;;
		 *) pkg="$pkg $1";;
	esac
	shift
done

for p in $pkg; do
	apkg -p $p >/dev/null || continue # skip if package not exist in repo
	apkg -a | grep -qx $p || continue # skip if package not installed
	purge $p
done

exit 0