summaryrefslogtreecommitdiff
path: root/pkgfoster
diff options
context:
space:
mode:
Diffstat (limited to 'pkgfoster')
-rwxr-xr-xpkgfoster57
1 files changed, 57 insertions, 0 deletions
diff --git a/pkgfoster b/pkgfoster
new file mode 100755
index 0000000..71e0efc
--- /dev/null
+++ b/pkgfoster
@@ -0,0 +1,57 @@
+#!/bin/bash
+#
+# pkgfoster 2005-11-27
+# Jukka Heino <jukka@karsikkopuu.net>
+#
+# pkgfoster is a simple script you can use to clean up orphaned packages (i.e.
+# packages which no other package depends on). It uses prt-cache by default, so
+# remember to build the cache with "prt-get cache". You can also use normal
+# prt-get by modifying the PRT_GET variable. List of packages to keep
+# are stored in ~/.keepers. Packages from base are never considered for
+# deletion.
+#
+
+PRT_GET=prt-cache
+PKGRM="sudo pkgrm"
+BASE="autoconf automake bash bin86 binutils bison bzip2 coreutils cpio db dcron devfsd diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm glibc grep groff gzip kbd less libtool lilo m4 make man man-pages mktemp module-init-tools nasm ncurses net-tools netkit-base patch perl pkgutils procps psmisc rc readline reiserfsprogs sed sendmail shadow slocate sysklogd sysvinit tar tcp_wrappers tcsh time traceroute util-linux vim wget which zlib"
+
+touch ~/.keepers
+
+echo "Checking packages for orphans..."
+
+while true ; do
+
+ RECHECK=0
+
+ for PACKAGE in $($PRT_GET listinst) ; do
+
+ if [ -z "$(grep ^$PACKAGE$ ~/.keepers)" ] && \
+ [ -z "$(echo "$BASE" | tr ' ' '\n' | grep ^$PACKAGE$)" ] && \
+ [ -z "$($PRT_GET dependent $PACKAGE)" ] ; then
+
+ echo
+ $PRT_GET info $PACKAGE
+ echo
+
+ echo -n "Uninstall $PACKAGE? (y/N) "
+ read ANSWER
+
+ if [ "$ANSWER" == "y" ] ; then
+ $PKGRM $PACKAGE
+ RECHECK=1
+ else
+ echo $PACKAGE >> ~/.keepers
+ fi
+
+ fi
+
+ done
+
+ if [ "$RECHECK" == "0" ] ; then
+ exit 0
+ fi
+
+ echo
+ echo "Re-checking packages for new orphans..."
+
+done

Generated by cgit