#!/usr/bin/perl
use 5.010;
use utf8;
use strict;
use warnings;
use Carp;

use Sort::Versions qw(versioncmp);

my $color_header  = "#ffcb48";
my $color_ok      = "#78af78";
my $color_warn    = "#ffff00";

sub booted_kernel {
  my $booted_kernel = `uname -r`;
  chomp($booted_kernel);

  return $booted_kernel;
}

sub installed_kernels {
  my $installed_kernels = `rpm --query --queryformat='%{VERSION}-%{RELEASE}.%{ARCH}\n' kernel`;
  chomp($installed_kernels);
  my @installed_kernels = split /\n/sx, $installed_kernels;

  return @installed_kernels;
}

sub latest_installed_kernel {
  my @installed_kernels = sort { versioncmp($b, $a) } installed_kernels();
  my $latest_installed_kernel = $installed_kernels[0];

  return $latest_installed_kernel;
}

my $booted_kernel = booted_kernel();
my $latest_installed_kernel = latest_installed_kernel();

if ($booted_kernel ne $latest_installed_kernel) {
  say "\${color $color_header}KERNEL\$color";
  say "  \${color $color_warn}REBOOT INTO $latest_installed_kernel\$color";
}