class Pec2::CLI
Public Class Methods
new(args = [], options = {}, config = {})
click to toggle source
Calls superclass method
# File lib/pec2/cli.rb, line 12 def initialize(args = [], options = {}, config = {}) super(args, options, config) @global_options = config[:shell].base.options @core = Ec2.new(profile: @global_options[:profile]) @logger = Logger.new(STDOUT) end
Public Instance Methods
run_command()
click to toggle source
# File lib/pec2/cli.rb, line 29 def run_command addresses = @core.instances_hash(options[:tag]).map do |instance| if options[:resolve] == 'private_ip_address' instance.private_ip_address elsif options[:resolve] == 'public_ip_address' instance.public_ip_address elsif options[:resolve] == 'name_tag' instance.tags.select{|tag| tag["key"] == "Name" }.first["value"] end end if addresses.empty? @logger.info(%Q{no host tag #{options[:tag]}.}) exit end @logger.info(%Q{connection size #{addresses.size}.}) @logger.info(%Q{listing connection to #{addresses.join(', ')}.}) pssh = Pssh.new(options, addresses, addresses.size) file_command = options[:file] ? File.read(options[:file]) : nil command = options[:command] || file_command interactive = command ? false : true if interactive while true command = ask(">:") pssh.exec_pssh_command(command) end else ret = pssh.exec_pssh_command(command) unless ret exit 1 end end end
version()
click to toggle source
# File lib/pec2/cli.rb, line 68 def version puts VERSION end