Updated bin directory to be a variable, updated for Ubuntu. Added cleanup of downloaded files
This commit is contained in:
parent
a532685756
commit
1aeff36818
1 changed files with 25 additions and 30 deletions
|
|
@ -10,6 +10,9 @@
|
||||||
|
|
||||||
# Re-write to use this dir according to gitea docs
|
# Re-write to use this dir according to gitea docs
|
||||||
# https://docs.gitea.io/en-us/install-from-binary/
|
# https://docs.gitea.io/en-us/install-from-binary/
|
||||||
|
# Get binary from system rather than hard code
|
||||||
|
# Stop gitea with systemctl before file copy
|
||||||
|
# Set right mod & perms?
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
@ -20,6 +23,7 @@ use JSON;
|
||||||
use Sort::Versions;
|
use Sort::Versions;
|
||||||
use Getopt::Long qw(GetOptions);
|
use Getopt::Long qw(GetOptions);
|
||||||
use Term::ANSIColor qw(:constants);
|
use Term::ANSIColor qw(:constants);
|
||||||
|
use feature qw(say);
|
||||||
|
|
||||||
my ( $verbose, $info );
|
my ( $verbose, $info );
|
||||||
|
|
||||||
|
|
@ -36,14 +40,12 @@ my $filetype = '-linux-amd64';
|
||||||
|
|
||||||
# https://api.github.com/repos/go-gitea/gitea/releases/latest
|
# https://api.github.com/repos/go-gitea/gitea/releases/latest
|
||||||
# This URL will only have one version listed
|
# This URL will only have one version listed
|
||||||
my $gitea_bin_dir = '/home/gitea/bin/';
|
my $gitea_bin_dir = '/usr/local/bin/';
|
||||||
my $gitea_bin = $gitea_bin_dir . '/gitea';
|
my $gitea_bin = $gitea_bin_dir . '/gitea';
|
||||||
my $gitea_current_version_string = `$gitea_bin --version`;
|
my $gitea_current_version_string = `$gitea_bin --version`;
|
||||||
my $alphanum_ver = 0;
|
my $alphanum_ver = 0;
|
||||||
|
|
||||||
chomp $gitea_current_version_string;
|
chomp $gitea_current_version_string;
|
||||||
print("System is running \"$gitea_current_version_string\"\n");
|
|
||||||
|
|
||||||
unless ( defined $gitea_current_version_string ) {
|
unless ( defined $gitea_current_version_string ) {
|
||||||
die
|
die
|
||||||
"[DIE]: Unable to get the version of the gitea binary on the system: $!";
|
"[DIE]: Unable to get the version of the gitea binary on the system: $!";
|
||||||
|
|
@ -69,15 +71,17 @@ my $tag = $orig_tag;
|
||||||
substr( $tag, 0, 1, '' );
|
substr( $tag, 0, 1, '' );
|
||||||
print("Latest upstream version is $tag\n");
|
print("Latest upstream version is $tag\n");
|
||||||
my $release_id = $latest_release_hash->{id}; # Works
|
my $release_id = $latest_release_hash->{id}; # Works
|
||||||
printf("Release id: $release_id\n");
|
|
||||||
|
|
||||||
my $unz_filename = 'gitea-' . $tag . $filetype;
|
my $unz_filename = 'gitea-' . $tag . $filetype;
|
||||||
printf("Uncompressed filename: $unz_filename\n");
|
|
||||||
|
|
||||||
#ex: gitea-1.7.6-linux-amd64
|
#ex: gitea-1.7.6-linux-amd64
|
||||||
|
my $download_dir = '/home/gitea/bin/';
|
||||||
my $download_filename = $unz_filename . '.xz';
|
my $download_filename = $unz_filename . '.xz';
|
||||||
printf("Download file target: $download_filename\n");
|
|
||||||
|
if ( defined $verbose ) {
|
||||||
|
printf( YELLOW
|
||||||
|
"[INFO]\nRelease id: $release_id\nUncompressed filename: $unz_filename\nDownload file target: $download_filename\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ex: gitea-1.7.6-linux-amd64.xz
|
#ex: gitea-1.7.6-linux-amd64.xz
|
||||||
|
|
||||||
|
|
@ -99,15 +103,6 @@ if ( versioncmp( $gitea_current_version, $tag ) == -1 ) {
|
||||||
|
|
||||||
install_bin($download_filename);
|
install_bin($download_filename);
|
||||||
|
|
||||||
=devel
|
|
||||||
# TODO
|
|
||||||
# If can start then
|
|
||||||
# Rename new binary to gitea
|
|
||||||
# Remove .xz file
|
|
||||||
# Notify success notify(1)
|
|
||||||
# If no start notify and end & notify fail notify(0)
|
|
||||||
=cut
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
my $status = check_gitea_status();
|
my $status = check_gitea_status();
|
||||||
|
|
@ -128,15 +123,15 @@ if ( versioncmp( $gitea_current_version, $tag ) == -1 ) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print(
|
say "Cleanup and remove the old xz file and uncompressed file";
|
||||||
"Write something here to call cleanup and remove the old xz file and uncompressed file\n"
|
say "Unzipped filename in cleanup is " . $download_dir . $unz_filename;
|
||||||
);
|
system("rm -vf " . $download_dir . $unz_filename);
|
||||||
|
system("rm -vf " . $download_dir . $download_filename);
|
||||||
|
# Intentionally *not* removing the 'gitea' binary in case something goes wrong running the current binary.
|
||||||
}
|
}
|
||||||
|
|
||||||
#TODO Add check if running binary is the same version as what we downloaded
|
#TODO Add check if running binary is the same version as what we downloaded
|
||||||
|
|
||||||
# # If install_bin good then cleanup()
|
|
||||||
|
|
||||||
# #notification( $email );
|
# #notification( $email );
|
||||||
|
|
||||||
# ##### Subroutines #####
|
# ##### Subroutines #####
|
||||||
|
|
@ -286,9 +281,9 @@ sub install_bin {
|
||||||
# Copy the downloaded binary to gitea and chmod it 750
|
# Copy the downloaded binary to gitea and chmod it 750
|
||||||
# Doing this with a filthy system call because the perl library
|
# Doing this with a filthy system call because the perl library
|
||||||
# for xz manipulation is a memory hog and buggy besides
|
# for xz manipulation is a memory hog and buggy besides
|
||||||
system("xz -d --keep /home/gitea/bin/$filename");
|
system("xz -d --keep $download_dir . $filename");
|
||||||
system("systemctl stop gitea");
|
system("systemctl stop gitea");
|
||||||
system("cp $gitea_bin_dir/$unz_filename $gitea_bin");
|
system("cp $download_dir/$unz_filename $gitea_bin");
|
||||||
system("chown gitea.gitea $gitea_bin");
|
system("chown gitea.gitea $gitea_bin");
|
||||||
system("chmod 750 $gitea_bin");
|
system("chmod 750 $gitea_bin");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue