Sha256: 706b32c55ba2bf3850d22a7fcfcdd0c0d31adcb41f43bf4be07442effa0d9525

Contents?: true

Size: 824 Bytes

Versions: 5

Compression:

Stored size: 824 Bytes

Contents

module Kontena::Cli::Plugins
  class SearchCommand < Kontena::Command

    parameter '[NAME]', 'Search text'

    def execute
      results = fetch_plugins(name)
      abort("Cannot access plugin server") unless results
      puts "%-50s %-10s %-60s" % ['NAME', 'VERSION', 'DESCRIPTION']
      results.each do |item|
        name = item['name'].sub('kontena-plugin-', '')
        puts "%-50s %-10s %-60s" % [name, item['version'], item['info']]
      end
    end

    def fetch_plugins(name)
      client = Excon.new('https://rubygems.org')
      response = client.get(
        path: "/api/v1/search.json?query=kontena-plugin-#{name}",
        headers: {
          'Content-Type' => 'application/json',
          'Accept' => 'application/json'
        }
      )

      JSON.parse(response.body) rescue nil
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
kontena-cli-0.16.0.pre5 lib/kontena/cli/plugins/search_command.rb
kontena-cli-0.16.0.pre4 lib/kontena/cli/plugins/search_command.rb
kontena-cli-0.16.0.pre3 lib/kontena/cli/plugins/search_command.rb
kontena-cli-0.16.0.pre2 lib/kontena/cli/plugins/search_command.rb
kontena-cli-0.16.0.pre1 lib/kontena/cli/plugins/search_command.rb