Sha256: 162c39e0776e42cd00f29b50db86ab58dd7196026da86cbb71f88e824ad80e3f
Contents?: true
Size: 1.91 KB
Versions: 2
Compression:
Stored size: 1.91 KB
Contents
require 'thor' require 'json' include Specinfra::Helper::Set module Koma class CLI < Thor desc 'ssh', 'stdout remote host inventory' option :key, type: :string, banner: '<key1,key2,..>', desc: 'inventory keys', aliases: :k option :identity_file, type: :string, banner: '<identity_file>', desc: 'identity file', aliases: :i option :port, type: :numeric, banner: '<port>', desc: 'port', aliases: :p def ssh(host) user, host = host.split('@') if host.include?('@') set :backend, :ssh set :host, host set :request_pty, true ssh_options = Net::SSH::Config.for(host) ssh_options[:user] = user if user ssh_options[:keys] = [options[:identity_file]] if options[:identity_file] ssh_options[:port] = options[:port] if options[:port] set :ssh_options, ssh_options puts JSON.pretty_generate out(options[:key]) end desc 'exec', 'stdout local host inventory' option :key, type: :string, banner: '<key1,key2,..>', desc: 'inventory keys', aliases: :k def exec set :backend, :exec puts JSON.pretty_generate out(options[:key]) end desc 'keys', 'host inventory keys' def keys inventory_keys.each do |key| puts key end end private def inventory_keys Specinfra::HostInventory.inventory_keys end def out(key = nil) out = {} keys = if key.nil? inventory_keys else key.split(',') end keys.each do |k| begin out[k] = Specinfra.backend.host_inventory[k] out[k] = Specinfra.backend.host_inventory[k].inspect if k == 'ec2' rescue NotImplementedError out[k] = nil end end out end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
koma-0.3.1 | lib/koma/cli.rb |
koma-0.3.0 | lib/koma/cli.rb |