awsm 0.0.1 → 0.0.4

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: e24a01866b9592580f781071d0930eb454b81a27
4
- data.tar.gz: 5ae12ba51869dd5339f515f770bcf8b0b44470ef
3
+ metadata.gz: abfb98b976f8940d34a6cea53ed10ec196a25d9b
4
+ data.tar.gz: 01446fea54dc664592c5b3af40115cb5f737a5d1
5
5
  SHA512:
6
- metadata.gz: 72f890cb1c74a2a3913c7477be147e8cf40b2cb9e20e1d2d6cc59472d0bfa84f0ec966a363df41b9f865fca88ece6f839780da063235bd7b8b00ecb8bac8a8b5
7
- data.tar.gz: 3a84fe176fdfe08a7b085dbd57ddbcea3e9e857626de1906d5915f0781a457063915d032c861d53a1ad58e97d75278abaac2f100ecc4e5210230ca3cbb673868
6
+ metadata.gz: f411dac4b99cd4d8d5df477d984f8031edc41975096c8cd2f0605d9fc86b9909d427cc55d067b81eb79faeb4f8fcd80cf6e8020ebd99844e74729f0a0e367584
7
+ data.tar.gz: 9e66e090cde43ce40a47d8647b04c6087686989e8f3b360cc674caab0cc4de552d83d41fa32e6be937eecfa5caf4be80ef1cf7d51b1d625aa4ae2b7e7114a16e
data/README.md CHANGED
@@ -2,12 +2,28 @@
2
2
 
3
3
  Awsm is an awesome AWS querying tool. Pun most certainly intended.
4
4
 
5
- ## Make it go!
5
+ ## Install from RubyGems
6
+
7
+ Awsm is available on RubyGems, to install it, all you need to do is:
8
+
9
+ ```
10
+ gem install awsm
11
+ ```
12
+
13
+ ## Install from Source
6
14
 
7
15
  Awsm is written in Ruby 2.1, so you'll need that to start with, you'll also need the `bundler` gem.
8
16
 
9
- [you@host:~]$ git clone https://github.com/mduk/awsome
10
- [you@host:~]$ cd awsome
17
+ ```
18
+ [you@host:~]$ git clone https://github.com/mduk/awsm
19
+ [you@host:~]$ cd awsm
20
+ [you@host:~/awsm]$ bundle install
21
+ [you@host:~/awsm]$ gem build awsm.gemspec
22
+ [you@host:~/awsm]$ gem install awsm-x.x.x.gem
23
+ [you@host:~/awsm]$ awsm
24
+ ```
25
+
26
+ ## Running Awsm
11
27
 
12
28
  Awsm requires four enviornment variables to be set in order to work. I use something like this:
13
29
 
@@ -20,19 +36,22 @@ Awsm requires four enviornment variables to be set in order to work. I use somet
20
36
 
21
37
  echo -e "\033[1m\033[92mAWS Environment Set.\033[0m"
22
38
 
23
- Once you have that in place, install dependencies.
24
-
25
- [you@host:~/awsome]$ bundle install
26
-
27
- Initialise environment variables.
28
-
29
- [you@host:~/awsome]$ source ./setvars.sh
30
- AWS Environment Set.
31
-
32
- And off you go.
33
-
34
- [you@host:~/awsome]$ bundle exec awsome search -dia beta
35
-
39
+ ## Configuring Awsm
40
+
41
+ Awsm will read configuration from `~/.awsm`. This is just used for the `spin` subcommand for now.
42
+ An example `~/.awsm` file is shown below:
43
+
44
+ ```
45
+ Spin:
46
+ InstanceType: t2.micro
47
+ KeyName: my-aws-keypair
48
+ Subnet: subnet-a0b1c2d3
49
+ SecurityGroups:
50
+ - sg-a0b1c2d3
51
+ Tags:
52
+ "h2g2:contact": "ford.prefect@megadodo.h2g2"
53
+ "h2g2:planet": kakrafoon
54
+ ```
36
55
 
37
56
  # Licence
38
57
 
data/awsm.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Daniel Kendell"]
10
10
  spec.email = ["daniel@kendell.org"]
11
11
  spec.summary = %q{Awsm AWS queryer}
12
- spec.description = File.open( 'README.md', 'rb' ).read
13
- spec.homepage = "http://github.com/mduk/awsm"
12
+ spec.description = %q{Awsm AWS queryer}
13
+ spec.homepage = ""
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -18,10 +18,11 @@ 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.add_runtime_dependency 'thor', '~> 0.19'
22
- spec.add_runtime_dependency 'aws-sdk-core', '~> 2.0'
21
+ spec.add_dependency 'thor'
22
+ spec.add_dependency 'aws-sdk', '~> 2'
23
+ spec.add_dependency 'terminal-table', '~> 1.4.5'
23
24
 
24
25
  spec.add_development_dependency "bundler", "~> 1.6"
25
- spec.add_development_dependency "rake", '~> 0'
26
- spec.add_development_dependency "pry", '~> 0'
26
+ spec.add_development_dependency "rake"
27
+ spec.add_development_dependency "pry"
27
28
  end
data/bin/awsm CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  require 'awsm'
4
4
 
5
- Awsm::Cli.start( ARGV )
5
+ Awsm::CLI::Main.start( ARGV )
6
6
 
@@ -1,29 +1,57 @@
1
- require 'thor'
2
-
3
1
  module Awsm
4
- class Cli < Thor
5
- class_option :instances, :type => :boolean, :default => false, :aliases => "-i",
6
- :desc => "Also show instance information. Including ID, Private IP, and current health."
7
- class_option :dns, :type => :boolean, :default => false, :aliases => "-d",
8
- :desc => "Check if there are any Route53 records pointing at this Load Balancer"
9
- class_option :asg, :type => :boolean, :default => false, :aliases => "-a",
10
- :desc => "Show Auto Scaling Groups that are receiving traffic from this Load Balancer"
11
-
12
- desc "specific <comma-separated-elb-names>",
13
- "Only find specific ELBs named in a comma-separated list."
14
- def specific( elb_names )
15
- results = load_balancers.get(elb_names)
16
- results = do_options( results )
17
- results.each { |elb| print_result(elb) }
18
- end
2
+ module CLI
3
+ class Main < Clibase
4
+ class_option :instances, :type => :boolean, :default => false, :aliases => "-i",
5
+ :desc => "Also show instance information. Including ID, Private IP, and current health."
19
6
 
20
- desc "search <search-terms>",
21
- "Show ELBs where the name matches the search terms."
22
- def search( search_terms )
23
- results = load_balancers.getAll.select { |combined| combined[:elb][:name] =~ /#{search_terms}/ }
24
- results = do_options( results )
25
- results.each { |elb| print_result(elb) }
26
- end
7
+ class_option :dns, :type => :boolean, :default => false, :aliases => "-d",
8
+ :desc => "Check if there are any Route53 records pointing at this Load Balancer"
9
+
10
+ class_option :asg, :type => :boolean, :default => false, :aliases => "-a",
11
+ :desc => "Show Auto Scaling Groups that are receiving traffic from this Load Balancer"
12
+
13
+ desc 'spin', 'Ad-hoc instances'
14
+ subcommand 'spin', Awsm::CLI::Spin
15
+
16
+ desc 'unused', 'Find unused resources'
17
+ subcommand 'unused', Awsm::CLI::Unused
18
+
19
+ desc "specific <comma-separated-elb-names>",
20
+ "Only find specific ELBs named in a comma-separated list."
21
+ def specific( elb_names )
22
+ results = load_balancers.get(elb_names)
23
+ results = do_options( results )
24
+ results.each { |elb| print_result(elb) }
25
+ end
26
+
27
+ desc "search <search-terms>",
28
+ "Show ELBs where the name matches the search terms."
29
+ def search( search_terms )
30
+ results = load_balancers.getAll.select do |combined|
31
+ combined[:elb][:name] =~ /#{search_terms}/
32
+ end
33
+ results = do_options( results )
34
+ results.each { |elb| print_result(elb) }
35
+ end
36
+
37
+ desc "r53 [dns-name]",
38
+ "Show me what <dns-name> points at."
39
+ def r53( dns_name )
40
+ dns_len = dns_name.length
41
+
42
+ say "#{dns_name} ", :yellow
43
+ say "=> ", :bold
44
+ dns.get_by_record( dns_name ).each_with_index do |r, i|
45
+ if i > 0
46
+ say " " * ( dns_len + 4 )
47
+ end
48
+ say "(#{r.type}) ", :green
49
+ case r.type
50
+ when "A"
51
+ say "#{r.alias_target.dns_name}", :cyan
52
+ end
53
+ end
54
+ end
27
55
 
28
56
  no_commands do
29
57
  def load_balancers
@@ -75,7 +103,7 @@ module Awsm
75
103
  say result[:elb][:name], :green, false
76
104
  print ' <= '
77
105
 
78
- # DNS
106
+ # DNS
79
107
  if result[:r53_dns].nil?
80
108
  say result[:elb][:dns], :white, false
81
109
  else
@@ -84,7 +112,7 @@ module Awsm
84
112
 
85
113
  puts
86
114
 
87
- # Load Balancer Tags
115
+ # Load Balancer Tags
88
116
  say " NO TAGS!", :red unless result[:elb][:tags].length > 0
89
117
  say " Tags:" if result[:elb][:tags].length > 0
90
118
  result[:elb][:tags].each do |k, v|
@@ -95,10 +123,14 @@ module Awsm
95
123
  end
96
124
 
97
125
  if options[:instances]
98
- say " Instances:"
99
- result[:instances].each do |instance_and_id|
100
- instance = instance_and_id[1]
101
- print_instance( 12, instance )
126
+ if result[:instances] != []
127
+ say " Instances:"
128
+ result[:instances].each do |instance_and_id|
129
+ instance = instance_and_id[1]
130
+ print_instance( 12, instance )
131
+ end
132
+ else
133
+ say " No Instances!", :red
102
134
  end
103
135
  end
104
136
 
@@ -145,3 +177,4 @@ module Awsm
145
177
  end
146
178
  end
147
179
  end
180
+ end
@@ -0,0 +1,153 @@
1
+ module Awsm
2
+ module CLI
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
+ def up( ami_id )
11
+ say "Spinning up #{ami_id}..."
12
+ response = ec2.run_instances(
13
+ image_id: ami_id,
14
+ min_count: 1,
15
+ max_count: 1,
16
+ key_name: configured_key_name,
17
+ instance_type: configured_instance_type,
18
+ security_group_ids: configured_security_groups,
19
+ subnet_id: configured_subnet
20
+ )
21
+
22
+ instance_id = response.instances.first.instance_id
23
+ say "Instance #{instance_id} is spinning up...", :green
24
+
25
+ while instance_extant?( instance_id ) == false
26
+ say '.', :green, false
27
+ sleep(3)
28
+ end
29
+
30
+ tags = [
31
+ { key: 'Name', value: "Temporary instance of #{ami_id} for #{whoami}" },
32
+ { key: 'awsm:owner', value: whoami }
33
+ ]
34
+
35
+ configured_tags.each do |k, v|
36
+ tags << { key: k, value: v }
37
+ end
38
+
39
+ ec2.create_tags(
40
+ resources: [ instance_id ],
41
+ tags: tags
42
+ )
43
+
44
+ say "Tagged #{instance_id}:"
45
+ tags.each do |tag|
46
+ say " #{tag[:key]} ", :cyan
47
+ say '=> '
48
+ say "#{tag[:value]}", :yellow
49
+ end
50
+ end
51
+
52
+ desc 'down [INSTANCE_ID]',
53
+ "Spin down the specified instance"
54
+ def down( instance_id )
55
+ say "Spinning down (terminating) #{instance_id}...", :red
56
+ ec2.terminate_instances(
57
+ instance_ids: [ instance_id ]
58
+ )
59
+ end
60
+
61
+ desc 'list',
62
+ "List all spinning instances"
63
+ option :simple, :type => :boolean, :default => false, :aliases => '-s',
64
+ :desc => "Display list without prettiness - good for sedding"
65
+ def list
66
+ response = ec2.describe_instances(
67
+ filters: [
68
+ { name: 'tag-key', values: [ "awsm:owner" ] }
69
+ ]
70
+ )
71
+ spinning = []
72
+ response.reservations.each do |r|
73
+ r.instances.each do |i|
74
+ owner = i.tags.select { |t| t.key == 'awsm:owner' }.first.value
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'
83
+ end
84
+
85
+ spinning << fields
86
+ end
87
+ end
88
+ end
89
+
90
+ if options[:simple]
91
+ spinning.each do |row|
92
+ say row.join(' ')
93
+ 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
+
102
+ no_commands do
103
+ def ec2
104
+ Aws::EC2::Client.new
105
+ end
106
+
107
+ def whoami
108
+ me_host = `hostname -f`.strip
109
+ me_user = `whoami`.strip
110
+ "#{me_user}@#{me_host}"
111
+ end
112
+
113
+ def instance_extant?( instance_id )
114
+ description = ec2.describe_instances(
115
+ instance_ids: [ instance_id ]
116
+ )
117
+
118
+ num_found = description.reservations.first.instances.length
119
+
120
+ if num_found == 0
121
+ return false
122
+ end
123
+
124
+ true
125
+ end
126
+
127
+ def config
128
+ Config.new.get('Spin')
129
+ end
130
+
131
+ def configured_security_groups
132
+ config['SecurityGroups']
133
+ end
134
+
135
+ def configured_subnet
136
+ config['Subnet']
137
+ end
138
+
139
+ def configured_instance_type
140
+ config['InstanceType']
141
+ end
142
+
143
+ def configured_key_name
144
+ config['KeyName']
145
+ end
146
+
147
+ def configured_tags
148
+ config['Tags']
149
+ end
150
+ end
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,88 @@
1
+ module Awsm
2
+ module CLI
3
+
4
+ class Unused < Clibase
5
+
6
+ class_option :tables, :type => :boolean, :lazy_default => true, :default => true,
7
+ :desc => "Whether or not to draw ASCII tables."
8
+
9
+ desc "elasticloadbalancers",
10
+ "Find and prune elastic load balancers that aren't connected to anything"
11
+ def elasticloadbalancers
12
+ puts_table(
13
+ headings: [ "ELB Name", "DNS", "Created Time" ],
14
+ rows: find_instanceless_elbs.map do |elb|
15
+ [ elb.load_balancer_name, elb.dns_name, elb.created_time ]
16
+ end
17
+ )
18
+ end
19
+
20
+ desc 'launchconfigurations',
21
+ "Find unused launch configurations"
22
+ def launchconfigurations
23
+ puts_table(
24
+ headings: [ "Launch Configuration Name", "Created Time" ],
25
+ rows: find_unused_launchconfigurations.map do |lc|
26
+ [ lc.launch_configuration_name, lc.created_time ]
27
+ end
28
+ )
29
+ end
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
+ no_commands do
43
+ def elb
44
+ Aws::ElasticLoadBalancing::Client.new
45
+ end
46
+
47
+ def ec2
48
+ Aws::EC2::Client.new
49
+ end
50
+
51
+ def as
52
+ Aws::AutoScaling::Client.new
53
+ end
54
+
55
+ def find_instanceless_elbs
56
+ elbs = []
57
+ elb.describe_load_balancers.load_balancer_descriptions.each do |elb|
58
+ if elb.instances.length == 0
59
+ elbs << elb
60
+ end
61
+ end
62
+ elbs
63
+ end
64
+
65
+ def find_unused_launchconfigurations
66
+ used_launchconfiguration_names = []
67
+ as.describe_auto_scaling_groups.auto_scaling_groups.each do |asg|
68
+ used_launchconfiguration_names << asg.launch_configuration_name
69
+ end
70
+
71
+ launchconfigurations = []
72
+ as.describe_launch_configurations.launch_configurations.each do |lc|
73
+ unless used_launchconfiguration_names.include?( lc.launch_configuration_name )
74
+ launchconfigurations << lc
75
+ end
76
+ end
77
+ launchconfigurations
78
+ end
79
+
80
+ def find_unused_amis
81
+ binding.pry
82
+ end
83
+ end
84
+
85
+ end
86
+
87
+ end
88
+ end
@@ -0,0 +1,15 @@
1
+ module Awsm
2
+ class Clibase < Thor
3
+ no_commands do
4
+ def puts_table( table )
5
+ if options[:tables] == true
6
+ puts Terminal::Table.new( table )
7
+ else
8
+ table[:rows].each do |r|
9
+ puts r.join( ' ' )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ module Awsm
2
+ class Config
3
+ def initialize
4
+ if File.exist?( ENV['HOME'] + '/.awsm' )
5
+ file = File.open( ENV['HOME'] + '/.awsm' ).read
6
+ @config = YAML.load( file )
7
+ end
8
+ end
9
+ def get( key )
10
+ @config[ key ]
11
+ end
12
+ end
13
+ end
data/lib/awsm/dns.rb CHANGED
@@ -4,12 +4,19 @@ module Awsm
4
4
  class Dns
5
5
  def initialize
6
6
  @client = Aws::Route53::Client.new
7
- @dns_map = {}
7
+ @dns_map_by_target = {}
8
+ @records = []
8
9
  load_dns_records
9
10
  end
10
11
 
11
12
  def find_for( target )
12
- @dns_map[ target ]
13
+ @dns_map_by_target[ target ]
14
+ end
15
+
16
+ def get_by_record( record )
17
+ @records.select do |r|
18
+ r.name =~ /^#{record}/
19
+ end
13
20
  end
14
21
 
15
22
  def load_dns_records
@@ -29,7 +36,8 @@ module Awsm
29
36
  target = r.resource_records[0].value
30
37
  end
31
38
 
32
- @dns_map[target] = r.name
39
+ @dns_map_by_target[target] = r.name
40
+ @records << r
33
41
  end
34
42
  end
35
43
  end
@@ -5,11 +5,17 @@ module Awsm
5
5
  end
6
6
 
7
7
  def get_instance_data( instance_ids )
8
- descriptions = @client.describe_instances( {
8
+ first_reservation = @client.describe_instances( {
9
9
  filters: [
10
10
  { name: "instance-id", values: instance_ids }
11
11
  ]
12
- } ).reservations.first.instances
12
+ } ).reservations.first
13
+
14
+ if first_reservation.nil?
15
+ return []
16
+ end
17
+
18
+ descriptions = first_reservation.instances
13
19
 
14
20
  instance_hash = {}
15
21
  descriptions.each do |description|
data/lib/awsm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Awsm
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/awsm.rb CHANGED
@@ -1,9 +1,19 @@
1
- require "awsm/version"
2
- require "awsm/loadbalancers"
3
- require "awsm/autoscalinggroups"
4
- require "awsm/dns"
5
- require "awsm/instances"
6
- require "awsm/cli"
7
-
8
- module Awsm
9
- end
1
+ require 'yaml'
2
+ require 'thor'
3
+ require 'terminal-table'
4
+
5
+ require 'awsm/config'
6
+ require 'awsm/version'
7
+ require 'awsm/loadbalancers'
8
+ require 'awsm/autoscalinggroups'
9
+ require 'awsm/dns'
10
+ require 'awsm/instances'
11
+
12
+ require 'awsm/clibase'
13
+ require 'awsm/cli/unused'
14
+ require 'awsm/cli/spin'
15
+ require 'awsm/cli/main'
16
+
17
+
18
+
19
+ require 'pry'
metadata CHANGED
@@ -1,43 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awsm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.4
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-03-02 00:00:00.000000000 Z
11
+ date: 2015-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: aws-sdk
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '0.19'
33
+ version: '2'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '0.19'
40
+ version: '2'
27
41
  - !ruby/object:Gem::Dependency
28
- name: aws-sdk-core
42
+ name: terminal-table
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '2.0'
47
+ version: 1.4.5
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '2.0'
54
+ version: 1.4.5
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -56,42 +70,31 @@ dependencies:
56
70
  name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - "~>"
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
75
  version: '0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - "~>"
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: pry
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "~>"
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: '0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "~>"
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
- description: "# Awsm\n\nAwsm is an awesome AWS querying tool. Pun most certainly intended.\n\n##
84
- Make it go!\n\nAwsm is written in Ruby 2.1, so you'll need that to start with, you'll
85
- also need the `bundler` gem.\n\n\t[you@host:~]$ git clone https://github.com/mduk/awsome\n\t[you@host:~]$
86
- cd awsome\n\nAwsm requires four enviornment variables to be set in order to work.
87
- I use something like this:\n\n\t#!/bin/bash\n\n\texport AWS_ACCESS_KEY_ID=\"You
88
- do not leak keys on github.\"\n\texport AWS_SECRET_ACCESS_KEY=\"You DO, NOT, LEAK,
89
- keys on github!\"\n\texport AWS_REGION=\"eu-west-1\"\n\texport AWSM_HOSTEDZONE=\"Don't
90
- leak this either.\"\n\n\techo -e \"\\033[1m\\033[92mAWS Environment Set.\\033[0m\"\n\nOnce
91
- you have that in place, install dependencies.\n\n\t[you@host:~/awsome]$ bundle install\n\nInitialise
92
- environment variables.\n\n\t[you@host:~/awsome]$ source ./setvars.sh\n\tAWS Environment
93
- Set.\n\nAnd off you go.\n\n\t[you@host:~/awsome]$ bundle exec awsome search -dia
94
- beta\n\n\n# Licence\n\nSee `LICENCE.txt` file.\n"
97
+ description: Awsm AWS queryer
95
98
  email:
96
99
  - daniel@kendell.org
97
100
  executables:
@@ -108,12 +111,16 @@ files:
108
111
  - bin/awsm
109
112
  - lib/awsm.rb
110
113
  - lib/awsm/autoscalinggroups.rb
111
- - lib/awsm/cli.rb
114
+ - lib/awsm/cli/main.rb
115
+ - lib/awsm/cli/spin.rb
116
+ - lib/awsm/cli/unused.rb
117
+ - lib/awsm/clibase.rb
118
+ - lib/awsm/config.rb
112
119
  - lib/awsm/dns.rb
113
120
  - lib/awsm/instances.rb
114
121
  - lib/awsm/loadbalancers.rb
115
122
  - lib/awsm/version.rb
116
- homepage: http://github.com/mduk/awsm
123
+ homepage: ''
117
124
  licenses:
118
125
  - MIT
119
126
  metadata: {}