awslanes 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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