##########################################################################
# Copyright (c) 2017 Hewlett Packard Enterprise Development LP.
# (C) Copyright 2013-2014 Hewlett-Packard Development Company, L.P.
# @(#) Product Name              :  HP Serviceguard
# @(#) Product Version           :  A.12.10.00
# @(#) Patch Name                :  
#
# This file is required by Serviceguard.  Do not modify or remove it.
############################## bundleversion ###########################
#
# This script prints the version of serviceguard bundle. 
#
############################################################################

#***********************
#     do_get_pkgname   *
#***********************
function do_get_pkgname
{
    typeset rpm_to_check
    typeset field
    typeset flag
    typeset pkg_name
    typeset -i n=2

    rpm_to_check=$(echo ${1##*/})
    field=$(echo ${rpm_to_check} | awk -F- '{print $1}')
    pkg_name=$(echo ${field})
    field=$(echo ${rpm_to_check} | awk -F- '{print $2}')
    flag=$(echo ${field} | grep "\.")
    while [ "${flag}" = "" ]
    do
       pkg_name="${pkg_name}-${field}"
       n=`expr $n + 1`
       field=$(echo ${rpm_to_check} | cut -f $n -d '-')
       flag=$(echo ${field} | grep "\.")
    done
    echo ${pkg_name}
}

function parse_cmd
{
#
# parse the command
#
while getopts :v arguments
do
   case $arguments in
        v) verbose=1
           ;;
        :) usage
           exit 1;;

       \?) usage
           exit 1
   esac
done
}

 
typeset version=""
typeset myversion
typeset version_var=0
typeset myversion_var
typeset var
typeset -a not_in_bundle=(serviceguard-mysql-toolkit serviceguard-nfs-toolkit \
serviceguard-apache-toolkit serviceguard-samba-toolkit serviceguard-sendmail-toolkit \
serviceguard-postgresql-toolkit serviceguard-tomcat-toolkit \
serviceguard-continentalclusters serviceguard-continentalclusters-snmpd) 

parse_cmd $@
var=`rpm -qa | grep -i serviceguard`
if (( $? != 0 )); then
   echo "ERROR: Cannot get bundle version."
   exit 1
fi

for pkg_to_remove in `echo ${not_in_bundle[*]}`
do
    var=`echo "$var" | grep -v $pkg_to_remove`
done
 
for pkg in `echo "$var"`
do
    pkgname=$(do_get_pkgname $pkg)
    myversion=$(rpm -q --queryformat '%{Version}' $pkgname)
    myversion_var=$(echo $myversion | awk -F. '{print $2$3$4$5}')
    if (( version_var < myversion_var )); then
       version=`echo $myversion`
       version_var=`echo $myversion_var`
    fi
done

ver=`echo $version | awk -F. '{print $5}'`
if [ -z "$ver" ]; then
   my_version=`echo $version | awk -F. '{print $2"."$3"."$4}'`
else
   my_version=`echo $version | awk -F. '{print $2"."$3"."$4"."$5}'`
fi

echo "The Bundle version is $my_version"
if (( verbose == 1 )); then
    echo "The following rpms are installed from Serviceguard bundle: "
    for pkg in `echo "$var"`
    do
       echo $pkg
    done
fi
