#!/usr/bin/perl # Date: Mon, 16 Oct 1995 12:12:13 +0100 # Subject: simple perl script for ports update checking # To: freebsd-ports@freebsd.org # From: Chris Stenton # Message-Id: # Sender: owner-ports@freebsd.org # # Here is a simple perl script for checking the current ports tree # against a users installed packages and notifying the user which ports # have been either updated or removed. I find this useful to keep my # 40 or so ports upto date. # # $Header: /home/jacs/perl/updated,v 1.2 1995/10/14 22:52:24 jacs Exp $ # # $Log: updated,v $ # Revision 1.2 1995/10/14 22:52:24 jacs # *** initial version *** # #read packages directory opendir(PKGDIR, "/var/db/pkg") || die "Could not open /var/db/pkg"; @allfiles = grep(!/^\.\.?$/, readdir(PKGDIR)); closedir(PKGDIR); #read ports index open(INDEXFH, "/usr/ports/INDEX") || die "Could not open /usr/ports/INDEX"; @indexfile = ; close(INDEXFH); #search index file for each package ENTRY: foreach $pkg (@allfiles) { foreach $line(@indexfile) { if(index($line, $pkg) ==0) { next ENTRY; } } #package is not in the INDEX file #checking to see if has been updated or removed printf "port %20s has been ", $pkg; $pkg =~ s/-.*/-/; foreach $line(@indexfile) { if(index($line, $pkg) ==0) { $line =~ s/\|.*//; print "updated too\t", $line; next ENTRY; } } print "removed \n"; }