#!/bin/bash
#< Show dates that Solaris patches were installed

ECHO="/usr/bin/echo"
PKGPARAM="/usr/bin/pkgparam"
SED="/usr/bin/sed"
SHOWREV="/usr/bin/showrev"
SORT="/usr/bin/sort"

${SHOWREV} -p | ${SORT} -k2,2 | while read line; do
   PATCHID=$( ${ECHO} "${line}" |\
              ${SED} 's/^Patch: \([0-9]\{6\}-[0-9]\{2\}\) .*$/\1/' )
   # Only need to grab the first package name, even if patch
   # has been installed to multiple packages - there will only be
   # a second or two difference between each pacakge
   PACKAGE=$( ${ECHO} "${line}" |\
              ${SED} 's/^.*Packages: \([^,]*\).*$/\1/' )
   INSTALLED=$( ${PKGPARAM} ${PACKAGE} PATCH_INFO_${PATCHID} |\
                ${SED} 's/^Installed: \(.*\) From:.*$/\1/' ) 
   echo "${PATCHID}: ${INSTALLED}"
done

exit 0