#!/bin/sh
#
#    Copyright (c) 2001-2017 Brocade Communications Systems, Inc.
#    All rights reserved.
#
#    File name:   version 
#    Module name: utils/firmware
#
#    This script displays following entries: 
#	Kernel:		Version of kernel
#	Fabos:		Fabos version
#	MadeOn:		The building date of package current installed in
#			the system.
#	Flash:		The install date of package saved in flash.
#	Bootprom:	Bootprom version.		
#
export PATH=/fabos/sbin:/fabos/bin:/bin:/usr/bin:/sbin

# For 2.6.34-kernel based platforms(Gen6), we can retrieve kernel version
# directly. There are several calls to "rpm" which is not required and clean up
# for legacy platforms (the else case below) will be done as part of v8.2.0.

output=`rpm -q kernel-2_6_34 2> /dev/null`
if [ $? -ne 1 ]; then
        kernel=`uname -r`
else
	output=`rpm -q kernel 2> /dev/null`
	if [ $? -ne 0 ]; then
	    output=`rpm -q kernel-swbd62 2> /dev/null`
	    if [ $? -ne 0 ]; then
	    	kernel="Unknown"
	    else
	    	kernel=`rpm -q --queryformat %{VERSION} kernel-swbd62`
	    	if [ $? -ne 0 ]; then
	    		kernel="Unknown"
	    	fi
	    fi
	else
		kernel=`rpm -q --queryformat %{VERSION} kernel`
		if [ $? -ne 0 ]; then
			kernel="Unknown"
		fi
	fi
	
	if [ $kernel = "Unknown" ] ; then
	  output=`rpm -q kernel-xfs 2> /dev/null`
	  if [ $? -ne 0 ]; then
	        kernel="Unknown"
	  else
	        kernel=`rpm -q --queryformat %{VERSION} kernel-xfs`
	        if [ $? -ne 0 ]; then
	                kernel="Unknown"
	   	fi
	  fi
	fi
fi

# DEFECT : TR000495651, For skybolt rpm -q is not finding the kernel version.
if [ $kernel = "Unknown" ] ; then
	kernel=`uname -r`
fi

swbd() {
    sed -n -e 's/^.\+\(SWBD[[:digit:]]\{1,\}\).\+$/\1/gp'
}
SWBD=`sin | swbd 2> /dev/null`

output=`rpm -q fabos`

if [ $? -ne 0 ]; then
	fabos="Unknown"
	madeon="Unknown"
	flash="Unknown"
else
	TMPFILE=/tmp/version.$$
	/sbin/getfabosver > $TMPFILE 2>/dev/null
	major=`cat $TMPFILE | grep Major | cut -d':' -f 2`	
	madeon=`cat $TMPFILE | grep "Date:" | sed -e 's/Date://g'`
	madeon=`echo $madeon`
	suffix=`rpm -q --queryformat %{VERSION} fabos`
	suffix=`echo $suffix`
	rm $TMPFILE > /dev/null 2>&1

	if [ "$major" = "" ]; then
		fabos="Unknown"
		madeon="Unknown"
	elif [ ${SWBD} == "SWBD171" ]; then
		fabos="$suffix"
	else
		fabos="v$suffix"
	fi
	flash=`rpm -q --queryformat %{INSTALLTIME:date} fabos`
	flash=`echo $flash`
	if [ "$flash" = "" ]; then
		flash="Unknown"	
	fi
fi


#prom=`sin | grep PROM | sed -e"s/[    ][       ]*//g" | cut -d, -f1| cut -d: -f2 | sed -e"s/Version//g"`

prom=`rpm -qa | grep prom | cut -d "-" -f 3`

printf "Kernel:     %s\n" "$kernel"
if [ ${SWBD} == "SWBD171" ]; then
    printf "FOS AMPOS:  %s\n" "$fabos"
else
	printf "Fabric OS:  %s\n" "$fabos" 
fi
printf "Made on:    %s\n" "$madeon"
printf "Flash:	    %s\n" "$flash"
printf "BootProm:   %s\n" "$prom"

