Date: Thu, 22 Oct 1998 15:08:29 +1000 From: "John Saunders" <john.saunders@scitec.com.au> To: "FreeBSD current" <freebsd-current@FreeBSD.ORG> Subject: Package upgrade check program Message-ID: <001b01bdfd7a$021fd540$6cb611cb@saruman.scitec.com.au>
next in thread | raw e-mail | index | archive | help
With everybody hot into upgrading to 3.0, I thought I would throw this script in that I have been working on the last couple of days (bit at a time). This script suggests upgrades to installed packages. I'm continuing to work on a version that will do the upgrade for you (after prompting of course). Enjoy... #!/bin/sh # pkg_check: # # Scan the installed packages and suggest upgrades or alternative # packages to install. # # Change directory to the package database directory. if cd /var/db/pkg 2>/dev/null; then else echo "Cannot find package database directory /var/db/pkg" exit 1 fi # Scan through all the installed packages. for pkg in *; do # Try to determine the name of the package without the version # number postfix. Commented out line uses lazy checking. base=`echo $pkg | sed -e '1,$ s/\([a-zA-Z_]-\)[0-9].*$/\1/'` #base=`echo $pkg | sed -e '1,$ s/\([a-zA-Z_]\)-[0-9].*$/\1/'` # Get a list of ports matching the package base name. new=`grep "^$base" /usr/ports/INDEX | sed -e '1,$ s/|.*$//'` # Upgrade is yes when installed package doesn't match any in ports. upgrade="yes" # Alternatives is yes when one of the ports matches the installed # package, but multiple ports are available. alternatives="no" # Simple case no upgrade needed. if [ "$pkg" = "$new" ]; then upgrade="no" else # Scan the multiple available ports. for i in $new; do if [ "$pkg" = "$i" ]; then upgrade="no" else alternatives="yes" fi done fi # Dump the information. if [ "$upgrade" = "yes" ]; then echo "Upgrade package $pkg to one of..." for i in $new; do echo " $i" done elif [ "$alternatives" = "yes" ]; then echo "Alternatives for $pkg exist..." for i in $new; do if [ "$pkg" = "$i" ]; then echo " $i (installed)" else echo " $i" fi done fi done exit 0 -- . +-------------------------------------------------------+ ,--_|\ | John Saunders mailto:John.Saunders@scitec.com.au | / Oz \ | SCITEC LIMITED Phone +61294289563 Fax +61294289933 | \_,--\_/ | "By the time you make ends meet, they move the ends." | v +-------------------------------------------------------+ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?001b01bdfd7a$021fd540$6cb611cb>