module Kontena::Cli::Plugins class SearchCommand < Clamp::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