Jiri Slaby
7a0a923da4
OBS-URL: https://build.opensuse.org/package/show/editors/vim-plugins?expand=0&rev=95
44 lines
1.1 KiB
Perl
44 lines
1.1 KiB
Perl
#!/usr/bin/perl
|
|
use warnings;
|
|
use strict;
|
|
use Data::Dumper;
|
|
use JSON;
|
|
use LWP::UserAgent;
|
|
|
|
open(SPEC, '<vim-plugins.spec') or die "cannot open spec";
|
|
my $spec;
|
|
{
|
|
local $/ = undef;
|
|
$spec = <SPEC>;
|
|
}
|
|
close(SPEC);
|
|
|
|
my $child = open(SPEC, '-|', qw|rpm -E|, $spec) // die "cannot run rpm";
|
|
exit 0 unless ($child);
|
|
|
|
my $ua = LWP::UserAgent->new;
|
|
my $json = JSON->new->allow_nonref;
|
|
|
|
while (<SPEC>) {
|
|
chomp;
|
|
my ($org, $repo, $rel, $ver) = (m@^Source\d+:\s+https://github\.com/([^/]+)/([^/]+)/(?:archive/refs/tags|releases/download/([^/]+))/([^/]+)\.tar\.gz#@);
|
|
next unless defined $ver;
|
|
$ver = $rel if defined $rel;
|
|
|
|
my $req_url = defined $rel ? 'releases/latest' : 'tags';
|
|
my $req = HTTP::Request->new(GET => "https://api.github.com/repos/$org/$repo/$req_url");
|
|
my $res = $ua->request($req);
|
|
die "bad HTTP reply for $org/$repo -- \"" . $res->status_line . '"' unless ($res->is_success);
|
|
|
|
my $j = $json->decode($res->content);
|
|
$j = @{$j}[0] unless (defined $rel);
|
|
my $ver2 = $j->{'name'} || $j->{'tag_name'};
|
|
|
|
if ($ver2 ne $ver) {
|
|
print "$org, $repo, $ver -> $ver2\n";
|
|
}
|
|
}
|
|
close(SPEC);
|
|
|
|
1;
|