awsm 0.0.4 → 0.1.0
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 +4 -4
- data/Makefile +4 -0
- data/README.md +26 -13
- data/awsm.gemspec +8 -9
- data/lib/awsm.rb +4 -4
- data/lib/awsm/cli/spin.rb +136 -127
- data/lib/awsm/cli/unused.rb +0 -19
- data/lib/awsm/configure.rb +135 -0
- data/lib/awsm/dns.rb +1 -1
- data/lib/awsm/version.rb +1 -1
- metadata +20 -31
- data/lib/awsm/config.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eebcaae0b291828f84a17fb57d59282e318fecd7
|
4
|
+
data.tar.gz: 450021bfc6e2ab511f174cc2909bd01c713a8e3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a19ee21ce8f9743b6793425016dfb19377c89aea81ab15ac8931983423638e4238d3a33f203030b40a648168e8450258fd643cd800bf66d62d852b3b35203fb1
|
7
|
+
data.tar.gz: 55b976091a7193935e979b52d3fd89cf8ac269d7a254b39b04f89e07dc9f5a9b9f658440cc16c8f04bcc086814441a8d7440a59ba49b706ab9d86d07be165ba5
|
data/Makefile
ADDED
data/README.md
CHANGED
@@ -25,32 +25,45 @@ Awsm is written in Ruby 2.1, so you'll need that to start with, you'll also need
|
|
25
25
|
|
26
26
|
## Running Awsm
|
27
27
|
|
28
|
-
Awsm requires
|
28
|
+
Awsm requires three enviornment variables to be set in order to work. I use something like this:
|
29
29
|
|
30
30
|
#!/bin/bash
|
31
31
|
|
32
32
|
export AWS_ACCESS_KEY_ID="You do not leak keys on github."
|
33
33
|
export AWS_SECRET_ACCESS_KEY="You DO, NOT, LEAK, keys on github!"
|
34
34
|
export AWS_REGION="eu-west-1"
|
35
|
-
export AWSM_HOSTEDZONE="Don't leak this either."
|
36
35
|
|
37
36
|
echo -e "\033[1m\033[92mAWS Environment Set.\033[0m"
|
38
37
|
|
39
38
|
## Configuring Awsm
|
40
39
|
|
41
|
-
Awsm will read configuration from `~/.awsm`.
|
42
|
-
An example `~/.awsm` file is shown below:
|
40
|
+
Awsm will read configuration from `~/.awsm.rb`. An example `~/.awsm.rb` file is shown below:
|
43
41
|
|
44
42
|
```
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
43
|
+
Awsm::configure do |c|
|
44
|
+
|
45
|
+
c.dns do |c|
|
46
|
+
c.hosted_zone '/hostedzone/somethingorother'
|
47
|
+
end
|
48
|
+
|
49
|
+
# Default Instance Parameters
|
50
|
+
c.spin do |c|
|
51
|
+
c.instance_type 't2.micro'
|
52
|
+
c.key_name 'my-key'
|
53
|
+
c.subnet 'subnet-a0b1c2d3'
|
54
|
+
c.security_group 'sg-a0b1c2d3'
|
55
|
+
c.tag 'h2g2:contact', 'ford.prefect@megadodo.h2g2'
|
56
|
+
c.tag 'h2g2:planet', 'kakrafoon'
|
57
|
+
end
|
58
|
+
|
59
|
+
# Preset: mything
|
60
|
+
c.spin 'mything' do |c|
|
61
|
+
c.image_id 'ami-a0b1c2d3'
|
62
|
+
c.security_group 'sg-a1b2c3d4'
|
63
|
+
c.tag 'thing:environment', 'dev'
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
54
67
|
```
|
55
68
|
|
56
69
|
# Licence
|
data/awsm.gemspec
CHANGED
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Awsm::VERSION
|
9
9
|
spec.authors = ["Daniel Kendell"]
|
10
10
|
spec.email = ["daniel@kendell.org"]
|
11
|
-
spec.summary = %q{Awsm AWS
|
12
|
-
spec.description = %q{
|
13
|
-
spec.homepage = ""
|
11
|
+
spec.summary = %q{Awsm AWS tool}
|
12
|
+
spec.description = %q{If you work with AWS, then Awsm wants to help make your life easier. Spin up/down ad-hoc instances as easily as `awsm spin up my_project`. Native ruby config file!}
|
13
|
+
spec.homepage = "http://github.com/mduk/awsm"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -18,11 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.
|
22
|
-
spec.
|
23
|
-
spec.
|
21
|
+
spec.add_runtime_dependency 'thor', '~> 0.19'
|
22
|
+
spec.add_runtime_dependency 'aws-sdk', '~> 2'
|
23
|
+
spec.add_runtime_dependency 'terminal-table', '~> 1.4'
|
24
24
|
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency "
|
27
|
-
spec.add_development_dependency "pry"
|
25
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
26
|
+
spec.add_development_dependency "pry", '~> 0.10'
|
28
27
|
end
|
data/lib/awsm.rb
CHANGED
@@ -2,8 +2,10 @@ require 'yaml'
|
|
2
2
|
require 'thor'
|
3
3
|
require 'terminal-table'
|
4
4
|
|
5
|
-
require 'awsm/config'
|
6
5
|
require 'awsm/version'
|
6
|
+
|
7
|
+
require 'awsm/configure'
|
8
|
+
|
7
9
|
require 'awsm/loadbalancers'
|
8
10
|
require 'awsm/autoscalinggroups'
|
9
11
|
require 'awsm/dns'
|
@@ -14,6 +16,4 @@ require 'awsm/cli/unused'
|
|
14
16
|
require 'awsm/cli/spin'
|
15
17
|
require 'awsm/cli/main'
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
require 'pry'
|
19
|
+
require "#{ENV['HOME']}/.awsm"
|
data/lib/awsm/cli/spin.rb
CHANGED
@@ -1,153 +1,162 @@
|
|
1
1
|
module Awsm
|
2
2
|
module CLI
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
while instance_extant?( instance_id ) == false
|
26
|
-
say '.', :green, false
|
27
|
-
sleep(3)
|
28
|
-
end
|
3
|
+
class Spin < Clibase
|
4
|
+
|
5
|
+
class_option :tables, :type => :boolean, :lazy_default => true, :default => true,
|
6
|
+
:desc => "Whether or not to draw ASCII tables."
|
7
|
+
|
8
|
+
desc 'up [AMI_ID]',
|
9
|
+
"Spin up an instance of the specified AMI"
|
10
|
+
option :image_id
|
11
|
+
option :key_name
|
12
|
+
def up( preset )
|
13
|
+
if /^ami-.+$/.match( preset )
|
14
|
+
c = Awsm::spin_config('default')
|
15
|
+
c.image_id( preset )
|
16
|
+
else
|
17
|
+
c = Awsm::spin_config( preset )
|
18
|
+
|
19
|
+
unless options[:image_id].nil?
|
20
|
+
unless c.image_id.nil?
|
21
|
+
override_alert( 'image_id', c.image_id, options[:image_id] )
|
22
|
+
end
|
23
|
+
c.image_id( options[:image_id] )
|
24
|
+
end
|
29
25
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
26
|
+
unless options[:key_name].nil?
|
27
|
+
unless c.key_name.nil?
|
28
|
+
override_alert( 'key_name', c.key_name, options[:key_name] )
|
29
|
+
end
|
30
|
+
c.key_name( options[:key_name] )
|
31
|
+
end
|
34
32
|
|
35
|
-
|
36
|
-
|
33
|
+
spin_up( c )
|
34
|
+
end
|
37
35
|
end
|
38
36
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
say " #{tag[:key]} ", :cyan
|
47
|
-
say '=> '
|
48
|
-
say "#{tag[:value]}", :yellow
|
37
|
+
desc 'down [INSTANCE_ID]',
|
38
|
+
"Spin down the specified instance"
|
39
|
+
def down( instance_id )
|
40
|
+
say "Spinning down (terminating) #{instance_id}...", :red
|
41
|
+
ec2.terminate_instances(
|
42
|
+
instance_ids: [ instance_id ]
|
43
|
+
)
|
49
44
|
end
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
if owner == whoami
|
77
|
-
fields = [ i.instance_id, i.state.name, i.image_id, owner, i.launch_time ]
|
78
|
-
|
79
|
-
if i.state.name == 'running'
|
80
|
-
fields << i.private_ip_address
|
81
|
-
else
|
82
|
-
fields << 'N/A'
|
45
|
+
|
46
|
+
desc 'list',
|
47
|
+
"List all spinning instances"
|
48
|
+
option :simple, :type => :boolean, :default => false, :aliases => '-s',
|
49
|
+
:desc => "Display list without prettiness - good for sedding"
|
50
|
+
def list
|
51
|
+
response = ec2.describe_instances(
|
52
|
+
filters: [
|
53
|
+
{ name: 'tag-key', values: [ "awsm:owner" ] }
|
54
|
+
]
|
55
|
+
)
|
56
|
+
spinning = []
|
57
|
+
response.reservations.each do |r|
|
58
|
+
r.instances.each do |i|
|
59
|
+
owner = i.tags.select { |t| t.key == 'awsm:owner' }.first.value
|
60
|
+
|
61
|
+
if owner == whoami
|
62
|
+
fields = [ i.instance_id, i.state.name, i.image_id, owner, i.launch_time ]
|
63
|
+
|
64
|
+
if i.state.name == 'running'
|
65
|
+
fields << i.private_ip_address
|
66
|
+
else
|
67
|
+
fields << 'N/A'
|
68
|
+
end
|
69
|
+
|
70
|
+
spinning << fields
|
83
71
|
end
|
72
|
+
end
|
73
|
+
end
|
84
74
|
|
85
|
-
|
75
|
+
if options[:simple]
|
76
|
+
spinning.each do |row|
|
77
|
+
say row.join(' ')
|
86
78
|
end
|
79
|
+
else
|
80
|
+
puts_table(
|
81
|
+
headings: [ 'Instance ID', 'State', 'AMI ID', 'Owner', 'Launched Time', 'Private IP' ],
|
82
|
+
rows: spinning
|
83
|
+
)
|
87
84
|
end
|
88
85
|
end
|
89
86
|
|
90
|
-
|
91
|
-
|
92
|
-
|
87
|
+
no_commands do
|
88
|
+
def ec2
|
89
|
+
Aws::EC2::Client.new
|
93
90
|
end
|
94
|
-
else
|
95
|
-
puts_table(
|
96
|
-
headings: [ 'Instance ID', 'State', 'AMI ID', 'Owner', 'Launched Time', 'Private IP' ],
|
97
|
-
rows: spinning
|
98
|
-
)
|
99
|
-
end
|
100
|
-
end
|
101
91
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
92
|
+
def whoami
|
93
|
+
me_host = `hostname -f`.strip
|
94
|
+
me_user = `whoami`.strip
|
95
|
+
"#{me_user}@#{me_host}"
|
96
|
+
end
|
106
97
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
"#{me_user}@#{me_host}"
|
111
|
-
end
|
98
|
+
def override_alert( field, from, to )
|
99
|
+
say "Overriding #{field} from #{from} to #{to}!", :bold
|
100
|
+
end
|
112
101
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
102
|
+
def instance_extant?( instance_id )
|
103
|
+
description = ec2.describe_instances(
|
104
|
+
instance_ids: [ instance_id ]
|
105
|
+
)
|
117
106
|
|
118
|
-
|
107
|
+
num_found = description.reservations.first.instances.length
|
119
108
|
|
120
|
-
|
121
|
-
|
122
|
-
|
109
|
+
if num_found == 0
|
110
|
+
return false
|
111
|
+
end
|
123
112
|
|
124
|
-
|
125
|
-
|
113
|
+
true
|
114
|
+
end
|
126
115
|
|
127
|
-
|
128
|
-
|
129
|
-
|
116
|
+
def spin_up( c )
|
117
|
+
response = ec2.run_instances(
|
118
|
+
image_id: c.image_id,
|
119
|
+
key_name: c.key_name,
|
120
|
+
instance_type: c.instance_type,
|
121
|
+
security_group_ids: c.security_groups,
|
122
|
+
subnet_id: c.subnet,
|
123
|
+
min_count: 1,
|
124
|
+
max_count: 1
|
125
|
+
)
|
126
|
+
|
127
|
+
say "Spinning up #{c.image_id}..."
|
128
|
+
|
129
|
+
instance_id = response.instances.first.instance_id
|
130
|
+
say "Instance #{instance_id} is spinning up...", :green
|
131
|
+
|
132
|
+
while instance_extant?( instance_id ) == false
|
133
|
+
say '.', :green, false
|
134
|
+
sleep(3)
|
135
|
+
end
|
130
136
|
|
131
|
-
|
132
|
-
|
133
|
-
|
137
|
+
tags = [
|
138
|
+
{ key: 'Name', value: "Temporary instance of #{c.image_id} for #{whoami}" },
|
139
|
+
{ key: 'awsm:owner', value: whoami }
|
140
|
+
]
|
134
141
|
|
135
|
-
|
136
|
-
|
137
|
-
|
142
|
+
c.tags.each do |k, v|
|
143
|
+
tags << { key: k, value: v }
|
144
|
+
end
|
138
145
|
|
139
|
-
|
140
|
-
|
141
|
-
|
146
|
+
ec2.create_tags(
|
147
|
+
resources: [ instance_id ],
|
148
|
+
tags: tags
|
149
|
+
)
|
142
150
|
|
143
|
-
|
144
|
-
|
145
|
-
|
151
|
+
say "Tagged #{instance_id}:"
|
152
|
+
tags.each do |tag|
|
153
|
+
say " #{tag[:key]} ", :cyan
|
154
|
+
say '=> '
|
155
|
+
say "#{tag[:value]}", :yellow
|
156
|
+
end
|
157
|
+
end
|
146
158
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|
159
|
+
end #no_commands
|
160
|
+
end #class
|
161
|
+
end #module
|
162
|
+
end #module
|
data/lib/awsm/cli/unused.rb
CHANGED
@@ -28,26 +28,11 @@ module Awsm
|
|
28
28
|
)
|
29
29
|
end
|
30
30
|
|
31
|
-
desc 'ami',
|
32
|
-
"Find unused AMIs"
|
33
|
-
def ami
|
34
|
-
puts_table(
|
35
|
-
headings: [ "AMI ID", "Created Time" ],
|
36
|
-
rows: find_unused_amis do |ami|
|
37
|
-
[ ]
|
38
|
-
end
|
39
|
-
)
|
40
|
-
end
|
41
|
-
|
42
31
|
no_commands do
|
43
32
|
def elb
|
44
33
|
Aws::ElasticLoadBalancing::Client.new
|
45
34
|
end
|
46
35
|
|
47
|
-
def ec2
|
48
|
-
Aws::EC2::Client.new
|
49
|
-
end
|
50
|
-
|
51
36
|
def as
|
52
37
|
Aws::AutoScaling::Client.new
|
53
38
|
end
|
@@ -76,10 +61,6 @@ module Awsm
|
|
76
61
|
end
|
77
62
|
launchconfigurations
|
78
63
|
end
|
79
|
-
|
80
|
-
def find_unused_amis
|
81
|
-
binding.pry
|
82
|
-
end
|
83
64
|
end
|
84
65
|
|
85
66
|
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
module Awsm
|
2
|
+
|
3
|
+
def self.configure
|
4
|
+
@@c = Configulator.new
|
5
|
+
yield @@c
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.spin_config( preset=nil )
|
9
|
+
@@c.spin( preset )
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.dns_config
|
13
|
+
@@c.dns
|
14
|
+
end
|
15
|
+
|
16
|
+
class Configulator
|
17
|
+
|
18
|
+
def initialize
|
19
|
+
@spin_blocks = {}
|
20
|
+
@dns_block = nil
|
21
|
+
end
|
22
|
+
|
23
|
+
def dns( &block )
|
24
|
+
if block_given?
|
25
|
+
@dns_block = block
|
26
|
+
return
|
27
|
+
end
|
28
|
+
|
29
|
+
c = Domainatrix.new
|
30
|
+
@dns_block.call( c )
|
31
|
+
return c
|
32
|
+
end
|
33
|
+
|
34
|
+
def spin( preset=nil, &block )
|
35
|
+
if block_given?
|
36
|
+
if preset.nil?
|
37
|
+
preset = 'default'
|
38
|
+
end
|
39
|
+
|
40
|
+
@spin_blocks[ preset ] = block
|
41
|
+
return
|
42
|
+
end
|
43
|
+
|
44
|
+
if preset.nil? || preset == 'default'
|
45
|
+
preset = 'default'
|
46
|
+
c = Spinulator.new
|
47
|
+
else
|
48
|
+
c = Spinulator.new( spin('default') )
|
49
|
+
end
|
50
|
+
|
51
|
+
if @spin_blocks[ preset ].nil?
|
52
|
+
raise StandardError, "Invalid preset: #{preset}"
|
53
|
+
end
|
54
|
+
|
55
|
+
@spin_blocks[ preset ].call( c )
|
56
|
+
|
57
|
+
return c
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
class Domainatrix
|
64
|
+
|
65
|
+
def hosted_zone( zone=nil )
|
66
|
+
if zone.nil?
|
67
|
+
return @hosted_zone
|
68
|
+
end
|
69
|
+
|
70
|
+
@hosted_zone = zone
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
class Spinulator
|
76
|
+
|
77
|
+
def initialize( default=nil )
|
78
|
+
@config = { tags: {} }
|
79
|
+
if default
|
80
|
+
@config[:instance_type] = default.instance_type
|
81
|
+
@config[:key_name] = default.key_name
|
82
|
+
@config[:subnet] = default.subnet
|
83
|
+
@config[:security_groups] = default.security_groups
|
84
|
+
@config[:tags] = default.tags || {}
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def method_missing( name, *args )
|
89
|
+
n_args = args.length
|
90
|
+
|
91
|
+
write = ( n_args > 0 || block_given? )
|
92
|
+
|
93
|
+
if write
|
94
|
+
if block_given?
|
95
|
+
args << yield
|
96
|
+
end
|
97
|
+
|
98
|
+
@config[ name ] = args.first
|
99
|
+
else
|
100
|
+
return @config[ name ]
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def tag( name, value=nil )
|
105
|
+
if value.nil? && block_given?
|
106
|
+
@config[:tags][ name ] = yield
|
107
|
+
elsif value && !block_given?
|
108
|
+
@config[:tags][ name ] = value
|
109
|
+
elsif value.nil? && !block_given?
|
110
|
+
raise StandardError, "You need to specify something."
|
111
|
+
elsif !value.nil? && block_given?
|
112
|
+
raise StandardError, "You can't specify both a value and a block. Choose."
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def security_group( security_group )
|
117
|
+
if @config[:security_groups].nil?
|
118
|
+
@config[:security_groups] = []
|
119
|
+
end
|
120
|
+
|
121
|
+
if security_group.nil? && block_given?
|
122
|
+
@config[:security_groups] << yield
|
123
|
+
elsif security_group && !block_given?
|
124
|
+
@config[:security_groups] << security_group
|
125
|
+
elsif security_group.nil? && !block_given?
|
126
|
+
raise StandardError, "You need to specify something."
|
127
|
+
elsif !security_group.nil? && block_given?
|
128
|
+
raise StandardError, "You can't specify both a value and a block. Choose."
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
data/lib/awsm/dns.rb
CHANGED
data/lib/awsm/version.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awsm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Kendell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '0.19'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '0.19'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: aws-sdk
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.4
|
47
|
+
version: '1.4'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.4
|
54
|
+
version: '1.4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,35 +66,23 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.6'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rake
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: pry
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- - "
|
73
|
+
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
75
|
+
version: '0.10'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- - "
|
80
|
+
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
description:
|
82
|
+
version: '0.10'
|
83
|
+
description: If you work with AWS, then Awsm wants to help make your life easier.
|
84
|
+
Spin up/down ad-hoc instances as easily as `awsm spin up my_project`. Native ruby
|
85
|
+
config file!
|
98
86
|
email:
|
99
87
|
- daniel@kendell.org
|
100
88
|
executables:
|
@@ -105,6 +93,7 @@ files:
|
|
105
93
|
- ".gitignore"
|
106
94
|
- Gemfile
|
107
95
|
- LICENSE.txt
|
96
|
+
- Makefile
|
108
97
|
- README.md
|
109
98
|
- Rakefile
|
110
99
|
- awsm.gemspec
|
@@ -115,12 +104,12 @@ files:
|
|
115
104
|
- lib/awsm/cli/spin.rb
|
116
105
|
- lib/awsm/cli/unused.rb
|
117
106
|
- lib/awsm/clibase.rb
|
118
|
-
- lib/awsm/
|
107
|
+
- lib/awsm/configure.rb
|
119
108
|
- lib/awsm/dns.rb
|
120
109
|
- lib/awsm/instances.rb
|
121
110
|
- lib/awsm/loadbalancers.rb
|
122
111
|
- lib/awsm/version.rb
|
123
|
-
homepage:
|
112
|
+
homepage: http://github.com/mduk/awsm
|
124
113
|
licenses:
|
125
114
|
- MIT
|
126
115
|
metadata: {}
|
@@ -140,9 +129,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
129
|
version: '0'
|
141
130
|
requirements: []
|
142
131
|
rubyforge_project:
|
143
|
-
rubygems_version: 2.
|
132
|
+
rubygems_version: 2.4.6
|
144
133
|
signing_key:
|
145
134
|
specification_version: 4
|
146
|
-
summary: Awsm AWS
|
135
|
+
summary: Awsm AWS tool
|
147
136
|
test_files: []
|
148
137
|
has_rdoc:
|
data/lib/awsm/config.rb
DELETED