pele 0.1.2.pre.pre → 0.1.4.pre.pre

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: cfef9bbbf9bd74a9ae924d894d68abf670937b8e
4
- data.tar.gz: 6a46cdff04c47886593a853d6615bcb9a7ee865f
3
+ metadata.gz: 1f5082085364927e55779413b4d6c8d7b9525db1
4
+ data.tar.gz: 91cf7d70ba8882e64f910766fc8c1ec15a402178
5
5
  SHA512:
6
- metadata.gz: a09855dc59c89de62fb5498cb09185d79efc9467fbb259d8635a9fcbabd3449b44539b609fe4f19587f0997d74ec906329945e6fcdaadb2ea4e155124de27101
7
- data.tar.gz: 45c3bb11794e3ea332cc2d8c7a07a7519e5cc02bc556c442e26e21a4e2ec85432278af4402fb44fe410077cf340c05cf15960a22a0e6352121db4e417df92adc
6
+ metadata.gz: 370a665eb0c5f916e951dc08c0c8471408cc7f62fab3812b0247048af04bc0d8562b01d18a702a84cf0b9e26185cb9fe8255aa409fca5f49fe24158d51213b6b
7
+ data.tar.gz: f08d6527d4ec2be7e2704489e85edc0f5c0f659a1d10a840672b252988a6d187a4a8215bdfb6148ce16ea50aa0cbe085285886c5871d7ad4c47e045878c5322a
data/lib/pele/cli.rb CHANGED
@@ -3,41 +3,34 @@ module Pele
3
3
  include Thor::Actions
4
4
 
5
5
  desc 'pele init', 'Initializes the AWS credentials on your Machine'
6
+
6
7
  def init
7
- os = OS.windows? || OS.mac? || OS.linux?
8
- unless os
9
- puts ''
10
- say("Looks like we could not identify your OS.\n\nPlease setup your ENV values as follows:\n\nAWS_ACCESS_KEY_ID=[YOUR ACCES KEY ID]\nAWS_SECRET_ACCESS_KEY=[YOUR SECRET KEY ID]", :red)
8
+ os = Pele::Utils.get_os_path
9
+ prompt = TTY::Prompt.new active_color: :green
10
+ Pele::Utils.check_existing_file(os)
11
+ Pele.utils.post_identification
12
+ aws_access_key_id = prompt.ask('AWS Access Key ID: '.colorize(:blue), required: true)
13
+ aws_secret_access_key = prompt.ask('AWS Secret Access Key: '.colorize(:blue), required: true)
14
+ aws_region = prompt.select('Choose a AWS region: '.colorize(:blue), Pele::Regions::ALL)
15
+ if aws_access_key_id.empty? || aws_secret_access_key.empty? || aws_region.empty?
16
+ say('You need to provide all three credentials. Please try again', :red)
11
17
  abort
12
18
  end
13
- prompt = TTY::Prompt.new active_color: :green
14
- if File.exist? File.expand_path '~/.aws/credentials'
15
- overwrite = prompt.select("This is going to overwrite your existing #{'~/.aws/credentials'.colorize(:green)}. ok?", %w[OK EXIT])
16
- abort unless overwrite == 'OK'
17
- puts ' '
19
+ create_file os do
20
+ "[default]\naws_access_key_id = #{aws_access_key_id}\naws_secret_access_key = #{aws_secret_access_key}\nregion = #{aws_region}"
18
21
  end
19
- puts "\e[H\e[2J"
20
- say('Your OS identified: ', :yellow)
21
- puts ''
22
- puts OS.report
22
+ say('Now lets generate AWS key-pair. This is needed to access EC2 Instances', :green)
23
23
  puts ''
24
- say('Provide your aws credentials below', :yellow)
25
- puts ''
26
- _aws_access_key_id = prompt.ask('AWS Access Key ID: '.colorize(:blue), required: true)
27
- _aws_secret_access_key = prompt.ask('AWS Secret Access Key: '.colorize(:blue), required: true)
28
- _aws_region = prompt.select('Choose a AWS region: '.colorize(:blue), Pele::Regions::ALL)
29
- if _aws_access_key_id.empty? || _aws_secret_access_key.empty? || _aws_region.empty?
30
- say('You need to provide all three credentials. Please try again', :red)
31
- abort
24
+ if File.exist? File.expand_path "#{os}key"
25
+ overwrite = prompt.select('Looks like you already have a key generated. Would you like to generate new one?', %w[Yes No])
26
+ abort if overwrite == 'Yes'
32
27
  end
33
- if OS.windows?
34
- create_file '%USERPROFILE%.awscredentials' do
35
- "[default]\naws_access_key_id = #{_aws_access_key_id}\naws_secret_access_key = #{_aws_secret_access_key}\naws_region = #{_aws_region}"
36
- end
37
- else
38
- create_file '~/.aws/credentials' do
39
- "[default]\naws_access_key_id = #{_aws_access_key_id}\naws_secret_access_key = #{_aws_secret_access_key}\naws_region = #{_aws_region}"
40
- end
28
+ puts ''
29
+ key_pair_name = prompt.ask('Name your key-pair. For example: mykeypair.colorize(:green)')
30
+ begin
31
+ Pele::Utils.create_key_pair(os, key_pair_name)
32
+ rescue
33
+ say('Something went wrong while trying to create key-pair. Please try again', :red)
41
34
  end
42
35
  end
43
36
  end
data/lib/pele/utils.rb ADDED
@@ -0,0 +1,44 @@
1
+ module Pele
2
+ module Utils
3
+ def get_os_path
4
+ if OS.windows?
5
+ '%USERPROFILE%.awscredentials'
6
+ elsif OS.mac? || OS.linux?
7
+ '~/.aws/credentials'
8
+ else
9
+ puts ''
10
+ say("Looks like we could not identify your OS.\n\nPlease setup your ENV values as follows:\n\nAWS_ACCESS_KEY_ID=[YOUR ACCES KEY ID]\nAWS_SECRET_ACCESS_KEY=[YOUR SECRET KEY ID]", :red)
11
+ abort
12
+ end
13
+ end
14
+
15
+ def check_existing_file(os)
16
+ if File.exist? File.expand_path os
17
+ overwrite = prompt.select("This is going to overwrite your existing #{'~/.aws/credentials'.colorize(:green)}. ok?", %w[OK EXIT])
18
+ abort unless overwrite == 'OK'
19
+ end
20
+ end
21
+
22
+ def post_identification
23
+ puts "\e[H\e[2J"
24
+ say('Your OS identified: ', :yellow)
25
+ puts ''
26
+ puts OS.report
27
+ puts ''
28
+ say('Provide your aws credentials below', :yellow)
29
+ puts ''
30
+ end
31
+
32
+ def create_key_pair(os, key_pair_name)
33
+ current_dirname = File.basename(Dir.getwd)
34
+ ec2 = Aws::EC2::Client.new
35
+ Dir.chdir File.dirname(os)
36
+ ec2.create_key_pair(key_name: key_pair_name)
37
+ Dir.chdir current_dirname
38
+ create_file "#{File.dirname(os)}key" do
39
+ key_pair_name.to_s
40
+ end
41
+ say('Key-pair successfully generated', :green)
42
+ end
43
+ end
44
+ end
data/lib/pele/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pele
2
- VERSION = "0.1.2-pre"
2
+ VERSION = "0.1.4-pre"
3
3
  end
data/lib/pele.rb CHANGED
@@ -4,6 +4,8 @@ require 'os'
4
4
  require 'tty-prompt'
5
5
  require 'pele/aws_regions'
6
6
  require 'colorize'
7
+ require 'aws-sdk'
8
+ require 'pele/utils'
7
9
  require 'pele/cli'
8
10
 
9
11
  module Pele
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pele
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.pre.pre
4
+ version: 0.1.4.pre.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Suyesh Bhandari
@@ -126,6 +126,7 @@ files:
126
126
  - lib/pele.rb
127
127
  - lib/pele/aws_regions.rb
128
128
  - lib/pele/cli.rb
129
+ - lib/pele/utils.rb
129
130
  - lib/pele/version.rb
130
131
  - pele.gemspec
131
132
  homepage: https://github.com/suyesh/pele