From 8df33dc5f5ec9245baba8fd31ae4abde30f663d8 Mon Sep 17 00:00:00 2001 From: Tracey Clark Date: Sun, 31 Jul 2022 15:37:10 -0500 Subject: [PATCH] Improved notification text with current and upstream versions. Fixed notification formatting bug --- gitea/update-gitea.pl | 58 ++++++++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/gitea/update-gitea.pl b/gitea/update-gitea.pl index 006f0dd..c125963 100755 --- a/gitea/update-gitea.pl +++ b/gitea/update-gitea.pl @@ -56,7 +56,7 @@ unless ( defined $gitea_current_version_string ) { die RED "$status", RESET; } -my %binary_file = get_current_version($gitea_current_version_string); +my %binary_file = get_current_binary($gitea_current_version_string); my $gitea_current_version = $binary_file{'version'}; my $baseURL = q{https://github.com/go-gitea/gitea/}; my $latestURL = q{https://api.github.com/repos/go-gitea/gitea/releases/latest}; @@ -72,7 +72,7 @@ my $latest_release_hash = decode_json( $resp->content ) or die "[DIE]: Unable to parse the version data! Output is:\n $resp"; my $orig_tag = $latest_release_hash->{tag_name}; -print "!!! ORIG TAG is $orig_tag\n"; +# print "[TLC DEBUG]: ORIG TAG is $orig_tag\n"; my $tag = $orig_tag; substr( $tag, 0, 1, '' ); my $release_id = $latest_release_hash->{id}; # Works @@ -107,8 +107,9 @@ if ( versioncmp( $gitea_current_version, $tag ) == -1 ) { } else { my $status = '✅ Version tag upstream matches the system version, no update needed'; + print "[TLC DEBUG] TAG is $tag\n"; print( YELLOW "[INFO] $status\n", RESET ); - notification('not needed ✅', $status); + notification('not needed ✅', $status, $gitea_current_version, $tag); exit 1; } @@ -117,26 +118,28 @@ if ( $gitea_status =~ /active/ ) { print( GREEN "[INFO] Gitea service is active\n", RESET ); } unless ( $gitea_status =~ /active/ ) { - my $status = RED "❌ [DIE] Status of gitea service is no good!\n", RESET; - notification('failed ❌', $status); + my $status = '❌ [DIE] Status of gitea service is no good!'; + print( RED "[INFO] $status\n", RESET ); + notification('failed ❌', $status, $gitea_current_version, $tag); die $status; } $gitea_current_version_string = `$gitea_bin --version`; chomp $gitea_current_version_string; -%binary_file = get_current_version($gitea_current_version_string); +%binary_file = get_current_binary($gitea_current_version_string); $gitea_current_version = $binary_file{'version'}; if ( versioncmp( $gitea_current_version, $tag ) == -1 ) { my $status = RED "Upstream version tag is STILL greater than the current system version, something went wrong\n", RESET; - notification('failed ❌', $status); + notification('failed ❌', $status, $gitea_current_version, $tag); printf( $status ); } else { - my $status = GREEN "✅ [INFO] Gitea version is current and service is running\n", RESET; + my $status = '✅ [INFO] Gitea successfuly update. Installed version is current and service is running'; + print( GREEN "[INFO] $status\n", RESET ); say "Removing the downloaded xz file and uncompressed file"; system("rm -vf " . $download_dir . $unz_filename); system("rm -vf " . $download_dir . $download_filename); - notification('succeeded ✅', $status); + notification('succeeded ✅', $status, $gitea_current_version, $tag); # Intentionally *not* removing the 'gitea' binary in case something goes wrong running the current binary. } @@ -147,7 +150,7 @@ else { # # bzip2 perl mods # } -sub get_current_version { +sub get_current_binary { my $current_version_string = shift; my $current_version; if ( $current_version_string =~ m/ion\ (\d+\.\d+\.\d*)\s+b/ ) { @@ -171,6 +174,10 @@ sub get_current_version { return %binary_file; } +sub get_binary_file { + my $version = shift; +} + sub backup_bin { # Ghetto to get it working for now @@ -303,20 +310,43 @@ sub check_gitea_status { } sub notification { - my ($result, $body) = @_; + my ($result, $body, $running_version, $upstream_version) = @_; my $subject = "Gitea update check: update " . $result; my $from = 'system@host.tlcnet.info'; + my $ver_body; + + # print "[TLC DEBUG] Body received is\n$body\n"; + + if ( defined $running_version ) { + $ver_body = q{ + + + + + + + + + + + +
Running version:} . $running_version . q{
Upstream version:} . $upstream_version . q{
} + } my $msg = MIME::Lite->new( Subject => encode( 'MIME-Header', $subject ), From => $from, To => $email, Type => 'text/html', - Data => encode_utf8( ' + Data => encode_utf8( + '

Gitea update result

-

' . $body . '


+

' . $body . '

' . $ver_body . + '

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

- ' ) +

Sincerely,
Your Linode VM

+ ' + ) ); $msg->send();