awsm 0.0.1 → 0.0.4

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: 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: {}