Last active 2 years ago

Revision 91dc0300d339395d2fd3fa055fc0d8820cc30d68

CheckUpdate.pl Raw
1#!/usr/bin/perl
2use strict;
3use warnings;
4use v5.10;
5
6use REST::Client;
7use Perl::Version;
8use File::Which;
9use JSON::MaybeXS;
10
11die "No opengist\n" unless which 'opengist';
12die "No forgejo\n" unless which 'forgejo';
13
14my $gversion = Perl::Version->new( substr `opengist version`, 9 );
15my $gurl = "https://api.github.com/repos/thomiceli/opengist/releases/latest";
16my $gh = REST::Client->new();
17$gh->GET( $gurl, { "accept" => "application/vnd.github+json" } );
18my $gcontent = decode_json $gh->responseContent();
19my $ngversion = Perl::Version->new( $gcontent->{'name'} );
20my $gdurl;
21my $gname;
22
23if ( $gversion < $ngversion ) {
24 `systemctl stop opengist`;
25 my @assets = @{ $gcontent->{'assets'} };
26 foreach my $assets (@assets) {
27 if ( $assets->{'name'} =~ /linux-amd64/ ) {
28 $gname = $assets->{'name'};
29 $gdurl = $assets->{'browser_download_url'};
30 }
31 }
32 `aria2c $gdurl`;
33 `tar xvf $gname`;
34 `cp opengist/opengist /usr/local/bin/opengist -v`;
35 `systemctl restart opengist`;
36 `rm -v $gname`;
37 say "Updated opengist!";
38}
39else{
40 say "No need update opengist!"
41}
42
43my @fout = split( / /, `forgejo -v` );
44my $fversion = substr $fout[5], 0, -1;
45