Initial commit of perl script to perform gitea updates. Logic to compare current version with latest published version is complete
This commit is contained in:
parent
e225980b19
commit
5c4db395a1
2 changed files with 100 additions and 29 deletions
100
update-gitea.pl
Normal file
100
update-gitea.pl
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# Update gitea based on version provided
|
||||
# Author: Tracey Clark
|
||||
# Created: 2019-03-04
|
||||
# You must have a mail transport agent installed to run this script
|
||||
|
||||
# Note: Daily backups are also being run from cron
|
||||
# /home/gitea/gitea_backup.sh
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
#use LWP::Simple;
|
||||
use LWP::UserAgent;
|
||||
use Data::Dumper;
|
||||
use JSON;
|
||||
|
||||
##########################################
|
||||
### The user must set these variables ###
|
||||
# SET email address
|
||||
my $email='tclark77@tlcnet.info';
|
||||
|
||||
|
||||
# gitea is hosted on github
|
||||
# GET /repos/go-gitea/gitea/releases/latest
|
||||
|
||||
# https://api.github.com/repos/go-gitea/gitea/releases/latest
|
||||
|
||||
=json
|
||||
$VAR1 = {
|
||||
'upload_url' => 'https://uploads.github.com/repos/go-gitea/gitea/releases/15817548/assets{?name,label}',
|
||||
'assets_url' => 'https://api.github.com/repos/go-gitea/gitea/releases/15817548/assets',
|
||||
'tag_name' => 'v1.7.3',
|
||||
'author' => {
|
||||
'gravatar_id' => '',
|
||||
etc
|
||||
},
|
||||
|
||||
=cut
|
||||
|
||||
# my $backup_zip = '~/gitea.zip'; # HEREHERE may need to change
|
||||
my $gitea_bin = '/home/gitea/bin/gitea';
|
||||
my $gitea_current_version_string = `$gitea_bin --version`;
|
||||
my $gitea_current_version;
|
||||
if ( $gitea_current_version_string =~ m/ion\ (\w+)\ b/ ) {
|
||||
$gitea_current_version = $1;
|
||||
}
|
||||
|
||||
printf("The version of gitea that is running is \"$gitea_current_version\"\n");
|
||||
|
||||
my $baseURL = q{https://github.com/go-gitea/gitea/};
|
||||
my $latestURL = q{https://api.github.com/repos/go-gitea/gitea/releases/latest};
|
||||
|
||||
# https://hubpages.com/technology/Use-Perl-to-access-REST-API
|
||||
# Spin up the browser object (via LWP::UserAgent)
|
||||
my $ua = LWP::UserAgent->new(
|
||||
ssl_opts => { verify_hostname => 0 }, # not worried about SSL certs
|
||||
cookie_jar => {}, # keep cookies in RAM but not persistent between sessions
|
||||
);
|
||||
|
||||
my $resp = $ua->get($latestURL);
|
||||
my $latest_release_hash = decode_json($resp->content);
|
||||
|
||||
# printf("!! Print the json response if we have one:\n");
|
||||
# printf Dumper $latest_release_hash;
|
||||
|
||||
# In case we need to deref later
|
||||
#my %latest_release_data = %$latest_release_hash;
|
||||
|
||||
my $tag = $latest_release_hash->{tag_name};
|
||||
printf("The latest gitea version is $tag\n");
|
||||
|
||||
if ( $tag gt $gitea_current_version ) {
|
||||
printf("Proceeding with update\n");
|
||||
}
|
||||
|
||||
# Download version specified
|
||||
|
||||
# Stop service
|
||||
|
||||
# Backup current gitea mv
|
||||
|
||||
# Build URL ex
|
||||
# https://dl.gitea.io/gitea/1.7.3/gitea-1.7.3-linux-amd64.xz
|
||||
# https://dl.gitea.io/gitea/$version/gitea-$version-linux-amd64.xz
|
||||
|
||||
# GITEA_XZ=gitea-$version-linux-amd64.xz
|
||||
|
||||
# wget
|
||||
|
||||
# Unzip downloaded gitea
|
||||
# unxz $GITEA_XZ
|
||||
|
||||
# Change perms unless we run this as user gitea
|
||||
|
||||
# Restart gitea
|
||||
|
||||
# Test
|
||||
|
||||
# Email
|
||||
Loading…
Add table
Add a link
Reference in a new issue