Class: Zypper::Upgraderepo::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/zypper/upgraderepo.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Builder

Returns a new instance of Builder.



14
15
16
17
18
19
20
21
22
23
# 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

Instance Method Details

#backupObject



25
26
27
28
29
30
31
32
33
# 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_currentObject



35
36
37
38
# File 'lib/zypper/upgraderepo.rb', line 35

def check_current
  @repos.upgrade!(@os_release.current)
  check_repos(@os_release.current)
end

#check_forObject



46
47
48
49
# File 'lib/zypper/upgraderepo.rb', line 46

def check_for
  @repos.upgrade!(@os_release.custom)
  check_repos(@os_release.custom)
end

#check_lastObject

Raises:



51
52
53
54
55
# File 'lib/zypper/upgraderepo.rb', line 51

def check_last
  raise AlreadyUpgraded, 'latest' if @os_release.last?
  @repos.upgrade!(@os_release.last)
  check_repos(@os_release.last)
end

#check_nextObject

Raises:



40
41
42
43
44
# File 'lib/zypper/upgraderepo.rb', line 40

def check_next
  raise AlreadyUpgraded, 'latest' if @os_release.last?
  @repos.upgrade!(@os_release.next)
  check_repos(@os_release.next)
end

#resetObject



75
76
77
# File 'lib/zypper/upgraderepo.rb', line 75

def reset
  upgrade_repos(@os_release.current)
end

#statusObject



79
80
81
# File 'lib/zypper/upgraderepo.rb', line 79

def status
  @view_class.status(@os_release)
end

#updateObject



83
84
85
86
# File 'lib/zypper/upgraderepo.rb', line 83

def update
  @repos.upgrade!(@os_release.current)
  upgrade_repos(@os_release.current)
end

#upgrade_toObject

Raises:



63
64
65
66
67
# File 'lib/zypper/upgraderepo.rb', line 63

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

#upgrade_to_lastObject

Raises:



69
70
71
72
73
# File 'lib/zypper/upgraderepo.rb', line 69

def upgrade_to_last
  raise AlreadyUpgraded, 'latest' if @os_release.last?
  @repos.upgrade!(@os_release.last)
  upgrade_repos(@os_release.last)
end

#upgrade_to_nextObject

Raises:



57
58
59
60
61
# File 'lib/zypper/upgraderepo.rb', line 57

def upgrade_to_next
  raise AlreadyUpgraded, 'latest' if @os_release.last?
  @repos.upgrade!(@os_release.next)
  upgrade_repos(@os_release.next)
end