Class: Kontena::Cli::Plugins::UpgradeCommand
- Inherits:
-
Kontena::Command
- Object
- Clamp::Command
- Kontena::Command
- Kontena::Cli::Plugins::UpgradeCommand
- Includes:
- Common, Common, PluginManager::Common
- Defined in:
- lib/kontena/cli/plugins/upgrade_command.rb
Constant Summary
Constants included from PluginManager::Common
PluginManager::Common::KRATES_PLUGIN
Instance Attribute Summary
Attributes inherited from Kontena::Command
#arguments, #exit_code, #result
Instance Method Summary collapse
- #cleanup(*plugins) ⇒ Object
- #execute ⇒ Object
- #installer(name, version: nil) ⇒ Object
- #running_verbose? ⇒ Boolean
- #upgrade(name, from, to) ⇒ Object
Methods included from PluginManager::Common
dummy_ui, gem_versions, install_dir, installed, installed?, plugin_debug?, plugins, prefix, rubygems_client, search_plugins, use_dummy_ui
Methods included from Common
Methods included from Common
#access_token=, #add_master, #any_key_to_continue, #any_key_to_continue_with_timeout, #api_url, #api_url=, #caret, #clear_current_grid, #client, #cloud_auth?, #cloud_client, #config, #confirm, #confirm_command, #current_grid, #current_master_index, #debug?, #display_account_login_info, #display_login_info, display_logo, #display_master_login_info, #error, exit_with_error, #kontena_account, #logger, #pastel, #print, #prompt, #puts, #require_api_url, #require_token, #reset_client, #reset_cloud_client, #running_quiet?, #running_silent?, #spin_if, #spinner, #sprint, #sputs, #stdin_input, #use_refresh_token, #vfakespinner, #vputs, #vspinner, #warning
Methods inherited from Kontena::Command
banner, callback_matcher, #help_requested?, inherited, #instance, load_subcommand, requires_current_account_token, requires_current_account_token?, requires_current_grid, requires_current_grid?, requires_current_master, requires_current_master?, requires_current_master_token, requires_current_master_token?, #run, #run_callbacks, #verify_current_account_token, #verify_current_grid, #verify_current_master, #verify_current_master_token
Instance Method Details
#cleanup(*plugins) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/kontena/cli/plugins/upgrade_command.rb', line 17 def cleanup(*plugins) return if plugins.empty? vspinner "Running cleanup" do plugins.each do |name| Kontena::PluginManager::Cleaner.new(name).cleanup end end end |
#execute ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/kontena/cli/plugins/upgrade_command.rb', line 37 def execute upgradable = {} vspinner "Checking for upgrades" do plugins.each do |plugin| short = short_name(plugin.name) available_upgrade = installer(short).available_upgrade unless available_upgrade.nil? upgradable[short] = { from: plugin.version.to_s, to: available_upgrade } end end end if upgradable.empty? vputs "Nothing upgraded" else upgradable.each do |name, data| upgrade(name, data[:from], data[:to]) end cleanup(upgradable.keys) end end |
#installer(name, version: nil) ⇒ Object
26 27 28 |
# File 'lib/kontena/cli/plugins/upgrade_command.rb', line 26 def installer(name, version: nil) Kontena::PluginManager::Installer.new(name, pre: pre?, version: version) end |
#running_verbose? ⇒ Boolean
13 14 15 |
# File 'lib/kontena/cli/plugins/upgrade_command.rb', line 13 def running_verbose? !silent? end |
#upgrade(name, from, to) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/kontena/cli/plugins/upgrade_command.rb', line 30 def upgrade(name, from, to) vspinner "Upgrading #{pastel.cyan(name)} from #{pastel.cyan(from)} to #{pastel.cyan(to)}" do installer(name, version: to).install end sputs "Upgraded #{name} from #{from} to #{to}" if silent? end |