Added config system

This commit is contained in:
2019-07-04 22:23:44 +02:00
parent f23e2c0336
commit 06b95e3150
2 changed files with 65 additions and 16 deletions

23
pcurse
View File

@@ -6,24 +6,26 @@ use Data::Dumper;
use pcurse;
select(STDOUT);
$| = 1;
my $wowpath = '/mnt/Div/World of Warcraft/_retail_/Interface/AddOns/';
my $base_uri = 'http://www.curseforge.com';
my $addons_file = $ENV{'HOME'}.'/.pcurse/addons.json';
my %opts = pcurse::parse_arguments;
my $addons = pcurse::load_addons($addons_file);
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'})) {
#print ' - at '.$addon->{'uri'};
my $html = pcurse::html_get($base_uri.$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 = 0;
#my $ret = pcurse::update($base_uri.$addon->{'uri'},$fileid,$wowpath);
my $ret = pcurse::update($conf->{'baseuri'}.$addon->{'uri'},$fileid,$conf->{'wowpath'});
if($ret) {
print ' - done';
$addon->{'version'} = $version;
@@ -31,12 +33,11 @@ foreach my $addon(@{$addons}) {
print ' - failed';
}
}
} else {
print 'Could not find product id for '.$addon->{'name'};
}
}
print "\n";
}
my ($ret,$msg) = pcurse::save_addons($addons_file,$addons);
($ret,$msg) = pcurse::save_config($conf->{'addons'},$addons);
print $msg."\n" unless($ret);