Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Oct 1995 12:12:13 +0100
From:      Chris Stenton <jacs@gnome.co.uk>
To:        freebsd-ports@freebsd.org
Subject:   simple perl script for ports update checking 
Message-ID:  <jacs-9509161112.AA00062262@hawk.gnome.co.uk>

next in thread | raw e-mail | index | archive | help

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.


Chris

--------updated----------

#!/usr/bin/perl
#
# $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 = <INDEXFH>;
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";
}









Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?jacs-9509161112.AA00062262>