From 408e04647acb16a5935f2d7fccb2554fba6f2ec0 Mon Sep 17 00:00:00 2001 From: igayoso Date: Thu, 5 Mar 2015 19:46:22 +0100 Subject: [PATCH 1/2] Added new table style when show server list --- EC2ssh.gemspec | 4 ++++ lib/ec2ssh.rb | 7 ++++++- lib/templates/ec2ssh_config_sample.yaml | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/EC2ssh.gemspec b/EC2ssh.gemspec index 9cacd74..37d7198 100644 --- a/EC2ssh.gemspec +++ b/EC2ssh.gemspec @@ -41,15 +41,19 @@ Gem::Specification.new do |s| s.add_runtime_dependency(%q, [">= 1.5.2"]) s.add_runtime_dependency(%q, [">= 2.5.6"]) s.add_runtime_dependency(%q, [">= 2.3.14"]) + s.add_runtime_dependency(%q, [">= 1.4.5"]) else s.add_dependency(%q, [">= 1.5.2"]) s.add_dependency(%q, [">= 2.5.6"]) s.add_dependency(%q, [">= 2.3.14"]) + s.add_dependency(%q, [">= 1.4.5"]) end else s.add_dependency(%q, [">= 1.5.2"]) s.add_dependency(%q, [">= 2.5.6"]) s.add_dependency(%q, [">= 2.3.14"]) + s.add_dependency(%q, [">= 2.3.14"]) + s.add_dependency(%q, [">= 1.4.5"]) end end diff --git a/lib/ec2ssh.rb b/lib/ec2ssh.rb index c887683..64cfefc 100644 --- a/lib/ec2ssh.rb +++ b/lib/ec2ssh.rb @@ -5,6 +5,7 @@ silence_warnings { require 'aws' } require 'yaml' require 'fileutils' +require 'terminal-table' module Ec2ssh @@ -19,16 +20,20 @@ def initialize(file = "~/.ec2ssh", account=:default) def select_instance(instances=[], filter_tag = nil, filter_ip = nil, filter_sg = nil) # TODO: Order by region # TODO: Ansi colors https://github.com/JEG2/highline/blob/master/examples/ansi_colors.rb + account_name = @config[:account_name] instances = get_all_ec2_instances n = 0 hostnames = [] + rows = [] instances.each do |i| if i[:aws_state] == "running" && check_filter_tag( filter_tag, i ) && check_filter_ip( filter_ip, i ) && check_filter_sg( filter_sg, i ) - puts "#{n}. #{i[:aws_instance_id]}: %-20s\t%-50s\t%-10s\t%s" % [ i[:tags]["Name"], i[:aws_groups].join(','), i[:dns_name], i[:aws_private_ip_address] ] + rows << [n, i[:aws_instance_id], i[:tags]["Name"], [:aws_groups].join(','), i[:dns_name], i[:aws_private_ip_address]] hostnames << i[:dns_name] n = n + 1 end end + table = Terminal::Table.new :title => account_name, :headings => ['#', 'instance_id', 'name', 'SG', 'dns_name', 'private_ip'], :rows => rows + puts table template = @config[:template] || "ssh #{Etc.getlogin}@" selected_host = ask("Host? ", Integer) { |q| q.in = 0..hostnames.count } command = template.gsub("",hostnames[selected_host]) diff --git a/lib/templates/ec2ssh_config_sample.yaml b/lib/templates/ec2ssh_config_sample.yaml index 76b0e4f..840b583 100644 --- a/lib/templates/ec2ssh_config_sample.yaml +++ b/lib/templates/ec2ssh_config_sample.yaml @@ -2,6 +2,8 @@ --- # Default account to use :default: + # account_name it is just for show the name on server list + :account_name: default :id: yourid :key: yourkey # Regions to check for running instances @@ -9,6 +11,7 @@ - us-east-1 # Another account, you can ec2ssh second :second: + :account_name: second :id: yourid :key: yourkey :regions: From 1e43265239eb8b950612456637613bdf9a40422f Mon Sep 17 00:00:00 2001 From: igayoso Date: Tue, 10 Mar 2015 12:38:57 +0100 Subject: [PATCH 2/2] Typo with duplicate line --- EC2ssh.gemspec | 1 - 1 file changed, 1 deletion(-) diff --git a/EC2ssh.gemspec b/EC2ssh.gemspec index 37d7198..60195ed 100644 --- a/EC2ssh.gemspec +++ b/EC2ssh.gemspec @@ -52,7 +52,6 @@ Gem::Specification.new do |s| s.add_dependency(%q, [">= 1.5.2"]) s.add_dependency(%q, [">= 2.5.6"]) s.add_dependency(%q, [">= 2.3.14"]) - s.add_dependency(%q, [">= 2.3.14"]) s.add_dependency(%q, [">= 1.4.5"]) end end