44 lines
1.3 KiB
Perl
44 lines
1.3 KiB
Perl
#!/usr/bin/env perl
|
|
use strict;
|
|
use warnings;
|
|
use lib '.';
|
|
use Data::Dumper;
|
|
use pcurse;
|
|
select(STDOUT);
|
|
$| = 1;
|
|
my $ret;
|
|
my $msg;
|
|
my %opts = pcurse::parse_arguments;
|
|
$opts{'config'} = $ENV{'HOME'}.'/.pcurse/config.json' unless($opts{'config'});
|
|
my $conf = pcurse::load_config($opts{'config'});
|
|
$conf = pcurse::check_config($conf);
|
|
($ret,$msg) = pcurse::save_config($opts{'config'},$conf);
|
|
print $msg."\n" unless($ret);
|
|
my $addons = pcurse::load_addons($conf->{'addons'});
|
|
foreach my $addon(@{$addons}) {
|
|
print 'Found '.$addon->{'name'}.'('.$addon->{'version'}.')';
|
|
if(exists($addon->{'uri'})) {
|
|
my $html = pcurse::html_get($conf->{'baseuri'}.$addon->{'uri'});
|
|
my $fileid = pcurse::get_latest_file_id($html,$addon->{'uri'});
|
|
if($fileid) {
|
|
my $version = pcurse::get_product_version($html,$addon->{'uri'},$fileid);
|
|
print ' - latest version is '.$version;
|
|
if($version && ($version ne $addon->{'version'})) {
|
|
print ' - updating';
|
|
my $ret = pcurse::update($conf->{'baseuri'}.$addon->{'uri'},$fileid,$conf->{'wowpath'});
|
|
if($ret) {
|
|
print ' - done';
|
|
$addon->{'version'} = $version;
|
|
} else {
|
|
print ' - failed';
|
|
}
|
|
}
|
|
} else {
|
|
print 'Could not find product id for '.$addon->{'name'};
|
|
}
|
|
}
|
|
print "\n";
|
|
}
|
|
($ret,$msg) = pcurse::save_config($conf->{'addons'},$addons);
|
|
print $msg."\n" unless($ret);
|