diff options
Diffstat (limited to 'ldap/systools/getHPPatches.pl')
-rwxr-xr-x | ldap/systools/getHPPatches.pl | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/ldap/systools/getHPPatches.pl b/ldap/systools/getHPPatches.pl new file mode 100755 index 00000000..4d1be441 --- /dev/null +++ b/ldap/systools/getHPPatches.pl @@ -0,0 +1,83 @@ +#!/tools/ns/bin/perl5.6.1 -w + +$patchcmd = "swlist -l bundle"; +# [output sample] +# Initializing... +# Contacting target "linux2"... +# +# Target: linux2:/ +# +# +# B6268AA B.11.00.05 Graphics and Technical Computing Software +# BUNDLE B.11.00 Patch Bundle +# HPUXEng64RT B.11.00.01 English HP-UX 64-bit Runtime Environment +# HWE1100 B.11.00.0206.5 Hardware Enablement Patches for HP-UX 11.00, June 2002 +# OnlineDiag B.11.00.21.10 HPUX 11.0 Support Tools Bundle, Jun 2002 +# QPK1100 B.11.00.64.4 Quality Pack for HP-UX 11.00, March 2004 +# UnlimUserLic B.11.00.02 HP-UX Unlimited-User License +# XSWGR1100 B.11.00.47.08 General Release Patches, November 1999 (ACE) + +%month2digit = ( + 'January', 1, + 'February', 2, + 'March', 3, + 'April', 4, + 'May', 5, + 'June', 6, + 'July', 7, + 'August', 8, + 'September', 9, + 'October', 10, + 'November', 11, + 'December', 12, +); + +open PATCHCMD, "$patchcmd|" or die "Error: could not open $patchcmd: $!"; +sleep 1; + +$qpk_str = ""; +$month_year = ""; +while (<PATCHCMD>) { + chop; + if (/^\s+(QPK.*), ([A-Za-z]* [12][0-9]*)/) { + $qpk_str = $1; + $month_year = $2; + } +} +close PATCHCMD; + +$date = gmtime; +$host = `hostname`; +chop $host; +$dom = `domainname`; +$un = `uname -a`; + +print "/* This list was generated by $0 */\n"; +print "/* on $host.$dom */\n"; +print "/* at $date GMT */\n"; +print "/* Here is the information from uname -a:\n"; +print $un; +if ( $qpk_str eq "" ) +{ + print " Quality Pack is not installed on the system. */\n"; +} +else +{ + ($qpkname, $version, $description) = split(/[ ]+/, $qpk_str, 3); + print "$qpkname\n"; + print "$version\n"; + print "$description\n"; + + if ( $month_year eq "" ) + { + print " Quality pack has no date info. */\n"; + print "$qpk_str <$month_year>\n"; + } + else + { + ($month, $year) = split(/\s/, $month_year, 2); + $mo = $month2digit{$month}; + print " The following is a Quality Pack installed on the system. */\n"; + print "{\"$qpkname\", \"$version\", \"$description\", $year, $mo, 0},\n"; + } +} |