Martin Carpenter
mcarpenter@free.fr
Copyright © Martin Carpenter 2011
The solaris-patch gem helps with the manipulation of SunOS and Solaris patches.
Read (or write!) patchdiag.xref files.
Find latest version of a patch.
Find latest non-superseded version of a patch.
Download patchdiag.xref, patches, readmes from Oracle.
…
require 'solaris/patch' Solaris::Patch.download_patch!( '123456-78', :to_file => '/tmp/123456-78.zip' )
Alternatively:
patch = Solaris::Patch.new( '123456-78' ) patch.download_patch!( :to_dir => '/tmp' )
require 'solaris/patch' Solaris::Patch.download_readme!( '123456-78', :to_file => '/tmp/123456-78.txt' )
require 'solaris/patch' Solaris::Patchdiag.open( '/tmp/patchdiag.xref' ).latest( '123456-01' ) => "123456|12|..."
require 'solaris/patch' Solaris::Patchdiag.open( '/tmp/patchdiag.xref' ).successor( '123456-01' ) => "234567|12|..."
require 'solaris/patch' # slurp in patchdiag.xref patchdiag = Solaris::Patchdiag.new( '/tmp/patchdiag.xref' ) # all sparc patches patchdiag.select { |p| p.archs.include? 'sparc' }.inspect => [ "123456-78", ... ] # latest line added to patchdiag.xref most_recent = patchdiag.sort_by( &:date ).last most_recent => "123456|78|..." # most recent patch number most_recent.patch => "123456-78" # most recent patch's README if it was recommended most_recent.download_readme! if most_recent.recommended? => "Patch-ID# 123456-78..."
Dates in patchdiag.xref are Mon/dd/yy format. This gem will break in 2050 since it assumes year 50 and above is in the 20th century.