awslanes 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 33a1d141bec973da05d80ff867e9bd85a9fdd69d
4
- data.tar.gz: aa9e4e8b1b169f9fe6d103797d8f2ae6b113987e
3
+ metadata.gz: 61d5264586ea12544f5ed60a050b9eaf9dfa705a
4
+ data.tar.gz: 189ad401623c0eef45500dc7f8814cac4dfc2f9b
5
5
  SHA512:
6
- metadata.gz: 72efffc58cd8d963f0a273344ee5f30fea13c6ffbb3cdf2d25aa6676d970e09f33d03df55b5fc58870a13457fcfd59b0bb6ebc5ac5daaeaffde0b40a7f3b6abc
7
- data.tar.gz: 7be57d9008903becff74fddd6f34d22ce36de19ad262a18b2b191db37a178243810875de5c5b174d5ce773d7097066fb3d37dcad546d1e917f888725aea0d7ab
6
+ metadata.gz: 5f5d102680808adae95e99e0d9d1b315d7a65427cbb44899677616a69dc6a8cdfc66c13998151943b1126d2d6eef5b6965028f2442ab146db428228afa9e3b1c
7
+ data.tar.gz: b9a03db047585f27df74ece747c68b2c264d2d327e3b1af8f742b6a1b65ce857b7f7b97b8416c48c33c4c8eba45e157ddf1e26a305b5ff119ddb351b06e0993b
data/awslanes.gemspec CHANGED
@@ -26,4 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency "awscli", "~> 0"
27
27
  spec.add_dependency "net-ssh", "~> 0"
28
28
  spec.add_dependency "rest-client", "~> 0"
29
+ spec.add_dependency "command_line_reporter", "~> 3"
29
30
  end
data/cmd/build.sh ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ rm awslanes-*
3
+ bundle install --path .bundle/gems --binstubs .bundle/bin \
4
+ && gem build awslanes.gemspec \
5
+ && gem install awslanes-*.gem \
6
+ && lanes
7
+
data/lib/lanes.rb CHANGED
@@ -7,9 +7,11 @@ require 'thor'
7
7
  require 'yaml'
8
8
  require 'awscli'
9
9
  require 'rest_client'
10
+ require 'command_line_reporter'
10
11
 
11
12
  module LanesCli
12
13
  class Lanes < Thor
14
+ include CommandLineReporter
13
15
 
14
16
  desc "switch [profile]", "Switches AWS profiles (e.g. ~/.lanes/lanes.yml entry)"
15
17
  def switch(profile)
@@ -25,9 +27,8 @@ module LanesCli
25
27
  def list(lane=nil)
26
28
  servers = AWS.instance.fetchServers(lane)
27
29
  servers.sort_by!{ |s| [s[:lane], s[:name]] }
28
- servers.each{|server|
29
- puts "\t%{name} (%{lane}) \t %{ip} \t %{id} " % server
30
- }
30
+ display_server_table(servers)
31
+
31
32
  end
32
33
 
33
34
  desc "ssh [LANE]", "Lists all servers name + ip + Instance ID, optionally filtered by lane, and prompts which one for ssh"
@@ -58,11 +59,7 @@ module LanesCli
58
59
  servers = AWS.instance.fetchServers(lane)
59
60
  servers.sort_by{ |s| s[:ip] }
60
61
 
61
- puts "Available Servers: "
62
- servers.each_with_index {|server|
63
- puts "\t%{name} (%{lane}) \t %{ip} \t %{id} " % server
64
- }
65
-
62
+ display_server_table(servers, title: "Available Servers:")
66
63
 
67
64
  mods = Props.instance.sshMod(lane)
68
65
  identity = if mods['identity'] then mods['identity'] else '' end
@@ -147,16 +144,32 @@ module LanesCli
147
144
  def chooseServer(lane=nil)
148
145
  servers = AWS.instance.fetchServers(lane)
149
146
  servers.sort_by!{ |s| [s[:lane], s[:name]] }
150
-
151
- puts "Available Servers: "
152
- servers.each_with_index {|server, index|
153
- i = index + 1
154
- puts "\t#{i}) %{name} (%{lane}) \t %{ip} \t %{id} " % server
155
- }
147
+ display_server_table(servers, title: "Available Servers:", display_index: true)
156
148
 
157
149
  choice = ask "Which server: "
158
150
  chosen = servers[ choice.to_i - 1 ] if choice != ''
159
151
  end
152
+
153
+ def display_server_table(servers,ops={})
154
+ header :title => ops[:title] || 'AWS Servers'
155
+ table border: true do
156
+ row header: true, color: 'white' do
157
+ column 'INDEX', width: 5, align: 'center' if ops[:display_index]
158
+ column 'SERVER', width: 30
159
+ column 'IP ADDRESS', width: 20
160
+ column 'ID', width: 15
161
+ end
162
+
163
+ servers.each_with_index do |server, index|
164
+ row :color => 'green', :bold => true do
165
+ column (index+1).to_s if ops[:display_index]
166
+ column "#{server[:name]} (#{server[:lane]})"
167
+ column server[:ip]
168
+ column server[:id]
169
+ end
170
+ end
171
+ end
172
+ end
160
173
  }
161
174
  end
162
175
 
data/lib/lanes/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module AwsLanes
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awslanes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Welch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-24 00:00:00.000000000 Z
11
+ date: 2016-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: command_line_reporter
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3'
97
111
  description: Manage "lanes" of AWS machines, according to [principle here]
98
112
  email:
99
113
  - david@davidwelch.co
@@ -110,6 +124,7 @@ files:
110
124
  - awslanes.gemspec
111
125
  - bin/lanes
112
126
  - changelog.md
127
+ - cmd/build.sh
113
128
  - lib/lanes.rb
114
129
  - lib/lanes/aws.rb
115
130
  - lib/lanes/file.rb
@@ -136,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
151
  version: '0'
137
152
  requirements: []
138
153
  rubyforge_project:
139
- rubygems_version: 2.2.2
154
+ rubygems_version: 2.4.5.1
140
155
  signing_key:
141
156
  specification_version: 4
142
157
  summary: Manage "lanes" of AWS machines