class Zypper::Upgraderepo::Builder
Public Class Methods
new(options)
click to toggle source
# File lib/zypper/upgraderepo.rb, line 14 def initialize(options) @os_release = OsRelease.new(options) @repos = RepositoryList.new(options).resolve_variables!(@os_release.current) @print_hint = options.hint @view_class = Zypper::Upgraderepo::View.const_get options.view.to_s.capitalize @backup_path = options.backup_path @exit_on_fail = options.exit_on_fail end
Public Instance Methods
backup()
click to toggle source
# File lib/zypper/upgraderepo.rb, line 25 def backup filename = File.join(@backup_path, "repos-backup-#{Time.now.to_s.delete(': +-')[0..-5]}.tgz") raise InvalidWritePermissions, filename unless File.writable? @backup_path Minitar.pack(RepositoryList::REPOSITORY_PATH, Zlib::GzipWriter.new(File.open(filename, 'wb'))) Messages.ok "Backup file generated at #{filename.bold.green}" end
check_current()
click to toggle source
# File lib/zypper/upgraderepo.rb, line 35 def check_current check_repos(@os_release.current) end
check_next()
click to toggle source
# File lib/zypper/upgraderepo.rb, line 39 def check_next raise AlreadyUpgraded, 'latest' if @os_release.last? @repos.upgrade!(@os_release.next) check_repos(@os_release.next) end
check_to()
click to toggle source
# File lib/zypper/upgraderepo.rb, line 45 def check_to @repos.upgrade!(@os_release.custom) check_repos(@os_release.custom) end
reset()
click to toggle source
# File lib/zypper/upgraderepo.rb, line 62 def reset upgrade_repos(@os_release.current) end
upgrade()
click to toggle source
# File lib/zypper/upgraderepo.rb, line 50 def upgrade raise AlreadyUpgraded, 'latest' if @os_release.last? @repos.upgrade!(@os_release.next) upgrade_repos(@os_release.next) end
upgrade_to()
click to toggle source
# File lib/zypper/upgraderepo.rb, line 56 def upgrade_to raise AlreadyUpgraded, @os_release.custom if @os_release.current?(@os_release.custom) @repos.upgrade!(@os_release.custom) upgrade_repos(@os_release.custom) end
Private Instance Methods
check_repos(version)
click to toggle source
# File lib/zypper/upgraderepo.rb, line 69 def check_repos(version) @view_class.header(@repos.max_col) @repos.each_with_number do |repo, num| @view_class.separator if repo.available? @view_class.available num, repo, @repos.max_col else raise UnableToUpgrade, { num: num, repo: repo } if @exit_on_fail if repo.redirected? @view_class.redirected num, repo, @repos.max_col, repo.redirected_to elsif repo.not_found? if @print_hint @view_class.alternative num, repo, @repos.max_col, repo.evaluate_alternative(version) else @view_class.not_found num, repo, @repos.max_col end elsif repo.timeout? @view_class.timeout num, repo, @repos.max_col end end end @view_class.footer end
upgrade_repos(version)
click to toggle source
# File lib/zypper/upgraderepo.rb, line 97 def upgrade_repos(version) @view_class.header(@repos.max_col, true) @repos.each_with_number do |repo, num| @view_class.separator if repo.upgraded? @view_class.upgraded num, repo, @repos.max_col else @view_class.untouched num, repo, @repos.max_col end end @view_class.separator @repos.save Messages.ok 'Repositories upgraded!' end