class Zypper::Upgraderepo::Repository
Attributes
filename[R]
old_alias[R]
old_name[R]
old_url[R]
Public Class Methods
new(filename)
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 108 def initialize(filename) @filename = filename @repo = IniParse.parse(File.read(filename)) @key = get_key @old_url = nil @old_name = nil @old_alias = nil end
Public Instance Methods
alias()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 161 def alias @key end
alias=(value)
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 165 def alias=(value) @repo = IniParse.parse(@repo.to_ini.sub(/\[[^\]]+\]/, "[#{value}]")) @key = get_key end
enable!(value = true)
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 121 def enable!(value = true) @repo[@key]['enabled'] = (value.to_s =~ /true|1|yes/i) ? 1 : 0 end
enabled?()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 117 def enabled? @repo[@key]['enabled'].to_i == 1 end
name()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 129 def name @repo[@key]['name'] || @key end
name=(value)
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 133 def name=(value) @repo[@key]['name'] = value end
priority()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 137 def priority @repo[@key]['priority'] || 99 end
protocol()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 149 def protocol URI(url.to_s).scheme end
save()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 189 def save raise InvalidWritePermissions, @filename unless File.writable? @filename process, pid = libzypp_process raise SystemUpdateRunning, { pid: pid, process: process } if pid @repo.save(@filename) end
type()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 125 def type @repo[@key]['type'] end
unversioned?()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 153 def unversioned? (url =~ /\d\d\.\d/).nil? end
upgrade!(version, args = {})
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 170 def upgrade!(version, args = {}) @old_url ||= self.url @old_alias ||= self.alias @old_name ||= self.name if args[:url_override] self.url = args[:url_override] else self.url = self.url.gsub(/\d\d\.\d/, version) end self.alias = self.alias.gsub(/\d\d\.\d/, version) if args[:alias] self.name = self.name.gsub(/\d\d\.\d/, version) if args[:name] end
upgraded?(item = :url)
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 185 def upgraded?(item = :url) (!self.send("old_#{item}").nil?) && (self.send("old_#{item}") != self.send(item)) end
url()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 141 def url @repo[@key]['baseurl'] end
url=(value)
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 145 def url=(value) @repo[@key]['baseurl'] = value end
versioned?()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 157 def versioned? !unversioned? end
Private Instance Methods
get_key()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 206 def get_key @repo.to_hash.keys.delete_if {|k| k == '0'}.pop end
libzypp_process()
click to toggle source
# File lib/zypper/upgraderepo/repository.rb, line 199 def libzypp_process libpath = `ldd /usr/bin/zypper | grep "libzypp.so"`.split(' => ')[1].split(' ').shift process = `sudo lsof #{libpath} | tail -n 1` process, pid = process.split(' ') [process, pid] end