#!/usr/bin/bash


### ##########################################################
### UBUNTU flavor
### yum chck-update -- apt-get update 
### yum update      -- apt-get upgrade
### ##########################################################

## in it counts
kernel_CNT="0"
packages_CNT="0"
services_CNT="0"
packages_shortname_CNT="0"

## Today's dae is....
TODAY=`date "+%d.%b.%y"`

## file cleanup and creation of empty files 
rm -rf /var/tmp/packages.${TODAY}  /var/tmp/packages.${TODAY}  /var/tmp/packages_shortname.${TODAY}
touch  /var/tmp/packages.${TODAY}  /var/tmp/packages.${TODAY}  /var/tmp/packages_shortname.${TODAY}

## debug printf "Today is ... $TODAY \n"

# packages to be updated
apt list --upgradable   2>&1  | egrep upgradable |cut -d/ -f1  | sort -u > /var/tmp/packages.${TODAY}

# packages to be updated -SHORT NAME
cat  /var/tmp/packages.${TODAY} | cut -d"-" -f1 |sort -u > /var/tmp/packages_shortname.${TODAY}

# SERVICES runnung
systemctl --type=service --state=running | egrep service | awk '{print $1}' | cut -d. -f1 | sort -u > /var/tmp/services.${TODAY}
services_CNT=`egrep -f Pkg-to-Service.lst /var/tmp/packages.${TODAY}| wc -l`

### Compare to Running Services
# #####################################################################
# Find the duplicates - if no dups, no reboot
packages_CNT=`sort /var/tmp/packages.${TODAY}    /var/tmp/services.$TODAY  |uniq -d | wc -l`

### Compare to packages runnings as a process - shortname (grep will find more)
# #####################################################################
# grep with piece of a package name
packages_shortname_CNT=`ps -ef | egrep -v abrt | egrep -f /var/tmp/packages_shortname.${TODAY} | wc -l`
## debug printf "ps -ef | egrep -f /var/tmp/packages-shortname.${TODAY} | wc -l\n"
## debug printf "cat /var/tmp/packages.${TODAY} \n"
## debug printf "cat /var/tmp/packages_shortname.${TODAY} \n"
## debug printf "packages  ${packages_CNT}  services  ${services_CNT} shortname ${packages_shortname_CNT}\n";

if [[ ${packages_CNT} -gt 0 || ${services_CNT} -gt 0  || ${packages_shortname_CNT} -gt 0 ]]; then
   printf "\n\n\n|P${packages_CNT}|S${services_CNT}|RS${packages_shortname_CNT}| Running services have been updated, server should be rebooted\n"
   cat /var/tmp/packages_shortname.27.Jul.23 
   printf "\n\n"

fi

# #####################################################################
# was there a kernal update ...  needs  reboot
kernel_CNT=`egrep kernel /var/tmp/packages.${TODAY} | wc -l`
# if there was a kernal update echo that 
if [[ ${kernel_CNT} -gt 0 ]]; then
   printf "There are kernel updates, server should be rebooted\n"
fi
