Sha256: ef85148189d74fbee1e09c4a6b21063ee37f76502922c83fdb39656009ed0f5b

Contents?: true

Size: 1.64 KB

Versions: 6

Compression:

Stored size: 1.64 KB

Contents

require 'open3'

module Kontena::Cli::Plugins
  class InstallCommand < Kontena::Command
    include Kontena::Util
    include Kontena::Cli::Common

    parameter 'NAME', 'Plugin name'

    option ['-v', '--version'], 'VERSION', 'Specify version of plugin to install'
    option '--pre', :flag, 'Allow pre-release of a plugin to be installed', default: false

    def execute
      installed_version = Kontena::PluginManager.instance.installed(name)

      if installed_version
        installed = spinner "Upgrading plugin #{name.colorize(:cyan)}" do |spin|
          begin
            Kontena::PluginManager.instance.upgrade_plugin(name, pre: pre?)
          rescue => ex
            $stderr.puts pastel.red("#{ex.class.name} : #{ex.message}")
            logger.error(ex)
            spin.fail!
          end
        end

        spinner "Running cleanup" do |spin|
          Kontena::PluginManager.instance.cleanup_plugin(name)
        end
      else
        installed = spinner "Installing plugin #{name.colorize(:cyan)}" do |spin|
          begin
            Kontena::PluginManager.instance.install_plugin(name, pre: pre?, version: version)
          rescue => ex
            $stderr.puts pastel.red("#{ex.class.name} : #{ex.message}")
            logger.error(ex)
            spin.fail!
          end
        end
      end

      Array(installed).each do |gem|
        if gem.name.start_with?('kontena-plugin-')
          puts Kontena.pastel.green("Installed plugin #{gem.name.sub('kontena-plugin-', '')} version #{gem.version}")
        else
          puts Kontena.pastel.cyan("Installed dependency #{gem.name} version #{gem.version}")
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
kontena-cli-1.3.0 lib/kontena/cli/plugins/install_command.rb
kontena-cli-1.3.0.rc4 lib/kontena/cli/plugins/install_command.rb
kontena-cli-1.3.0.rc3 lib/kontena/cli/plugins/install_command.rb
kontena-cli-1.3.0.rc2 lib/kontena/cli/plugins/install_command.rb
kontena-cli-1.3.0.rc1 lib/kontena/cli/plugins/install_command.rb
kontena-cli-1.3.0.pre2 lib/kontena/cli/plugins/install_command.rb