#!/usr/bin/perl -I/home/pgl/public_html/pisg/src/pisg/modules
### small script to check whether pisg has been updated. the -I
### to use Pisg; is necessary becuase as of version 0.34, pisg
### doesn't have a --version or -v switch to find out what version
### you're running.
###
use warnings;
use strict;
use LWP::Simple qw/get getstore/;
use Pisg;
my $dlpage = 'http://pisg.sourceforge.net/index.php?page=download';
my $dldir = '/home/pgl/public_html/pisg/';
my $regex = qr/href="(.*?pisg-([0-9]+\.[0-9]+).tar.gz)/;
my $page = get $dlpage
or die "Couldn't fetch download page: $!\n";
my ($dlurl, $latestver) = $page =~ /$regex/
or die "Couldn't find pisg version number in $dlpage, giving up\n";
my $pisg = new Pisg;
$pisg->get_default_config_settings(); # ick
my ($ourver) = $pisg->{cfg}->{version} =~ m/^v(.*)$/; # nasty
die "Couldn't get pisg version number!" unless $ourver;
if ($ourver > $latestver) {
print "Something fishy going on: pisg v$latestver is on the download page,\n",
"which is lower than your the installed version (v$ourver).\n";
}
elsif ($ourver < $latestver) {
my $dlto = "$dldir/pisg-$latestver.tar.gz";
print "New pisg out: v$latestver (v$ourver installed)\n",
"Downloading it to $dlto\n";
my $httpstatus = getstore $dlurl, $dlto;
if ($httpstatus != 200) {
warn "Warning: received HTTP status code $httpstatus whilst trying to download\n",
"pisg v$latestver from $dlurl\n";
}
else {
# maybe do the untar bit here?
}
}