# File lib/chef/provider/package/zypper.rb, line 87 def install_package(name, version) if zypper_version < 1.0 run_command( :command => "zypper install -y #{name}" ) elsif version run_command( :command => "zypper -n --no-gpg-checks install -l #{name}=#{version}" ) else run_command( :command => "zypper -n --no-gpg-checks install -l #{name}" ) end end
# File lib/chef/provider/package/zypper.rb, line 30 def load_current_resource @current_resource = Chef::Resource::Package.new(@new_resource.name) @current_resource.package_name(@new_resource.package_name) is_installed=false is_out_of_date=false version='' oud_version='' Chef::Log.debug("#{@new_resource} checking zypper") status = popen4("zypper info #{@new_resource.package_name}") do |pid, stdin, stdout, stderr| stdout.each do |line| case line when /^Version: (.+)$/ version = $1 Chef::Log.debug("#{@new_resource} version #{$1}") when /^Installed: Yes$/ is_installed=true Chef::Log.debug("#{@new_resource} is installed") when /^Installed: No$/ is_installed=false Chef::Log.debug("#{@new_resource} is not installed") when /^Status: out-of-date \(version (.+) installed\)$/ is_out_of_date=true oud_version=$1 Chef::Log.debug("#{@new_resource} out of date version #{$1}") end end end if is_installed==false @candidate_version=version @current_resource.version(nil) end if is_installed==true if is_out_of_date==true @current_resource.version(oud_version) @candidate_version=version else @current_resource.version(version) @candidate_version=version end end unless status.exitstatus == 0 raise Chef::Exceptions::Package, "zypper failed - #{status.inspect}!" end @current_resource end
# File lib/chef/provider/package/zypper.rb, line 137 def purge_package(name, version) remove_package(name, version) end
# File lib/chef/provider/package/zypper.rb, line 119 def remove_package(name, version) if zypper_version < 1.0 run_command( :command => "zypper remove -y #{name}" ) elsif version run_command( :command => "zypper -n --no-gpg-checks remove #{name}=#{version}" ) else run_command( :command => "zypper -n --no-gpg-checks remove #{name}" ) end end
# File lib/chef/provider/package/zypper.rb, line 103 def upgrade_package(name, version) if zypper_version < 1.0 run_command( :command => "zypper install -y #{name}" ) elsif version run_command( :command => "zypper -n --no-gpg-checks install -l #{name}=#{version}" ) else run_command( :command => "zypper -n --no-gpg-checks install -l #{name}" ) end end
Gets the zypper Version from command output (Returns Floating Point number)
# File lib/chef/provider/package/zypper.rb, line 83 def zypper_version() `zypper -V 2>&1`.scan(/\d+/).join(".").to_f end
Generated with the Darkfish Rdoc Generator 2.