#!/usr/bin/perl
#
# usage: gpt-upgrade /path/to/some-new-package-1.2.3-i386.tgz
#

my $package_path = shift;
if($package_path eq '') {
	die;
}

$package_path =~ /([^\/]+)$/;
$package = $1;
if($package eq '') {
	die;
}

$package =~ /^(.*)\-([^\-]+)\-[^\-]+\-([0-9]+)\.tgz$/i;
$package_name = $1;
if($1 eq '') {
	die;
}

# remove previous installation of $package
$_ = `ls /var/log/packages/$package_name-* 2> /dev/null`;
if(($? == 0) && (!($_ eq ''))) {
	foreach $logfile (split(/\n/, $_)) {
		$logfile =~ s/^.*\///g;
		$logfile =~ /^(.*)\-([^\-]+)\-[^\-]+\-([0-9]+)$/;
		if($1 eq $package_name) {
			print "uninstalling old version ($logfile): removepkg $logfile\n";
			system "removepkg $logfile";
			if($? != 0) {
				die "Could not uninstall $logfile\n";
			}
		}
	}
}

print "\n\n";

# install new package
print "installing $package: installpkg $package_path\n";
system "installpkg $package_path";
if($? != 0) {
	die "Could not install $package_path\n";
}
