awx 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.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/bin/awx +5 -0
  3. data/lib/awx.rb +124 -0
  4. data/lib/version.rb +1 -0
  5. metadata +109 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f45efb7c22579d93855b4b979bd61d48b19c5d6d
4
+ data.tar.gz: 6f56e452dc4298b9cd1bafe150691325df84e745
5
+ SHA512:
6
+ metadata.gz: eabe941e7349e2003decadcd90258029c0ed7250c9f3f91305a85094387777217b732f4c5bfecc3214b16b26f8724a1ce7ac3163c418bcdb664bf80142f76313
7
+ data.tar.gz: 2101dcd95ea79eb57e6c58da6f6f7b10dba7bb1233247e2b2b2f6fe421af4ad75602c02d6608da9b4d8683dedda9fbefbe4b79c98c6456f73e24935e97c0df88
data/bin/awx ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'awx'
4
+
5
+ App::execute
data/lib/awx.rb ADDED
@@ -0,0 +1,124 @@
1
+ require 'columnist'
2
+ require 'convoy'
3
+ require 'yaml'
4
+ require 'blufin-lib'
5
+
6
+ require_relative 'version'
7
+ require 'core/config_unique'
8
+ require 'core/aws/aws_config'
9
+ require 'core/aws/aws_credentials'
10
+
11
+ Dir["#{File.dirname(__FILE__)}/core/**/*.rb"].each { |file| load(file) unless file =~ /\/(config_unique|aws_config|aws_credentials)\.rb\z/ }
12
+ Dir["#{File.dirname(__FILE__)}/routes/**/*.rb"].each { |file| load(file) }
13
+
14
+ module App
15
+
16
+ def self.execute
17
+
18
+ begin
19
+
20
+ unless !ARGV.any? || ARGV[0] == 'setup' || ARGV[0] == 'x'
21
+ App::Config.initialize
22
+ end
23
+
24
+ Convoy::App.create do |my|
25
+
26
+ # COLOR OF TITLE TEXT
27
+ title_color = 255
28
+
29
+ my.version VERSION
30
+ my.summary "\x1B[38;5;198mMY-CLI\x1B[0m \x1B[38;5;240m\xe2\x80\x94 BETA\x1B[0m"
31
+ my.description "\x1B[38;5;#{title_color}mA command line utility for myself.\nDesigned to work from anywhere on my mac.\n\nUse #{Blufin::Terminal::format_command('my')}\x1B[38;5;#{title_color}m to run.\x1B[0m"
32
+
33
+ # Checks whether a AWS 'blufin-cli' profile exists within ~/.aws ...
34
+ unless App::AWSConfig::get_credentials(App::AWSConfig::AWS_PROFILE_ALBERT_CLI).nil?
35
+ # a - AWS
36
+ my.command :aws, :aliases => [:a] do |aws|
37
+ aws.summary 'AWS related functionality'
38
+ # cf - AWS CLOUD FORMATION
39
+ aws.command :cloudformation, :aliases => [:c] do |aws_cloudformation|
40
+ aws_cloudformation.summary 'Create, list and delete cloud-formation stacks'
41
+ # c - AWS CLOUD FORMATION CREATE
42
+ aws_cloudformation.command :create, :aliases => [:c] do |aws_cloudformation_create|
43
+ aws_cloudformation_create.summary 'Create stack'
44
+ aws_cloudformation_create.options do |opts|
45
+ opts.opt :test, 'Run through test-template.', :short => '-t', :long => '--test', :type => :boolean
46
+ end
47
+ aws_cloudformation_create.action do |opts, args|
48
+ AppCommand::AWSCloudFormationCreate.new(opts, args).execute
49
+ end
50
+ end
51
+ # d - AWS CLOUD FORMATION DETECT-DRIFT
52
+ aws_cloudformation.command :detect_drift, :aliases => [:d] do |aws_cloudformation_detect_drift|
53
+ aws_cloudformation_detect_drift.summary 'Detect drift (for stack)'
54
+ aws_cloudformation_detect_drift.action do |opts, args|
55
+ AppCommand::AWSCloudFormationDetectDrift.new(opts, args).execute
56
+ end
57
+ end
58
+ # D - AWS CLOUD FORMATION DELETE
59
+ aws_cloudformation.command :delete, :aliases => [:D] do |aws_cloudformation_delete|
60
+ aws_cloudformation_delete.summary 'Delete stack'
61
+ aws_cloudformation_delete.action do |opts, args|
62
+ AppCommand::AWSCloudFormationDelete.new(opts, args).execute
63
+ end
64
+ end
65
+ aws_cloudformation.action do
66
+ system("#{ConfigUnique::GEM_NAME} a c -h")
67
+ end
68
+ end
69
+ # l - AWS LIST
70
+ aws.command :list, :aliases => [:l] do |aws_list|
71
+ aws_list.summary 'List AWS instances/resources'
72
+ aws_list.options do |opts|
73
+ opts.opt :json, 'Return data as JSON', :short => '-j', :long => '--json', :type => :boolean
74
+ opts.opt :json_prompt, 'Return data as JSON (for Terminal::prompt)', :short => '-J', :long => '--json-prompt', :type => :boolean
75
+ opts.opt :yaml, 'Return data as Yaml', :short => '-y', :long => '--yaml', :type => :boolean
76
+ opts.opt :resource, "Specify a resource. For all resources type: #{Blufin::Terminal::format_command('all')}", :short => '-r', :long => '--resource', :type => :string
77
+ opts.opt :verbose, 'Output the original response from AWS (with all fields).', :short => '-v', :long => '--verbose', :type => :boolean
78
+ opts.opt :metadata, 'Output the YML definition file metadata.', :short => '-m', :long => '--metadata', :type => :boolean
79
+ # TODO - Implement Region + Project filtering (possibly more).
80
+ opts.opt :region, 'Specify a region', :short => '-R', :long => '--region', :type => :string
81
+ opts.opt :project, 'Specify a project (Tag: project)', :short => '-p', :long => '--project', :type => :string
82
+ end
83
+ aws_list.action do |opts, args|
84
+ AppCommand::AWSList.new(opts, args).execute
85
+ end
86
+ end
87
+ # L - AWS LAMBDA
88
+ aws.command :lambda, :aliases => [:L] do |aws_lambda|
89
+ aws_lambda.summary 'Quickly invoke a Lambda function locally (without the need to deploy)'
90
+ aws_lambda.options do |opts|
91
+ opts.opt :headers_file, 'The path to a JSON containing HTTP Headers you want to send', :short => '-H', :long => '--headers-file', :type => :string
92
+ opts.opt :payload_file, 'The path to a JSON payload you want to send', :short => '-p', :long => '--pay-load-file', :type => :string
93
+ end
94
+ aws_lambda.action do |opts, args|
95
+ AppCommand::AWSLambda.new(opts, args).execute
96
+ end
97
+ end
98
+ aws.action do |opts, args|
99
+ system("#{ConfigUnique::GEM_NAME} a -h")
100
+ end
101
+ end
102
+ end
103
+
104
+ # x - SETUP
105
+ my.command :setup, :aliases => [:x] do |setup|
106
+ setup.summary 'Setup your configuration file'
107
+ setup.action do |opts, args|
108
+ AppCommand::Setup.new(opts, args).execute
109
+ end
110
+ end
111
+
112
+ # MY (DEFAULT)
113
+ my.action do
114
+ system("#{ConfigUnique::GEM_NAME} -h")
115
+ end
116
+
117
+ end
118
+
119
+ rescue RuntimeError => e
120
+
121
+ Blufin::Terminal::print_exception(e);
122
+ end
123
+ end
124
+ end
data/lib/version.rb ADDED
@@ -0,0 +1 @@
1
+ VERSION = '0.1.0'
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: awx
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Albert Rannetsperger
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-07-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: columnist
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: convoy
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: blufin-lib
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.4.0
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 1.4.0
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - '='
56
+ - !ruby/object:Gem::Version
57
+ version: 1.4.0
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.4.0
61
+ - !ruby/object:Gem::Dependency
62
+ name: parseconfig
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - '='
66
+ - !ruby/object:Gem::Version
67
+ version: 1.0.8
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - '='
73
+ - !ruby/object:Gem::Version
74
+ version: 1.0.8
75
+ description: An abstraction layer built around the AWS-cli (written in Ruby).
76
+ email: alb3rtuk@me.com
77
+ executables:
78
+ - awx
79
+ extensions: []
80
+ extra_rdoc_files: []
81
+ files:
82
+ - bin/awx
83
+ - lib/awx.rb
84
+ - lib/version.rb
85
+ homepage: http://rubygems.org/gems/awx
86
+ licenses:
87
+ - MIT
88
+ metadata: {}
89
+ post_install_message:
90
+ rdoc_options: []
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '2.0'
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubyforge_project:
105
+ rubygems_version: 2.5.1
106
+ signing_key:
107
+ specification_version: 4
108
+ summary: An AWS-cli wrapper.
109
+ test_files: []