rockette 0.0.0 → 0.0.1

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
  SHA256:
3
- metadata.gz: 6f2866e9216bcc77870fb829a23f4da29fbd89f74a0295a4ca4f65f7f555cd5c
4
- data.tar.gz: 3e4c48b3266e2c701b398b7f485b19570c559488f7cd5262a06ae5e8a3b1f6ad
3
+ metadata.gz: 2870c274fb8f46b67ff9590364eeb0b68936e046a2a33c162de7410542c735af
4
+ data.tar.gz: b2932d43fbd1562c79b86408afb907b1db2bf4c2fb8d072fdd36d61393dccd92
5
5
  SHA512:
6
- metadata.gz: a5d48288aa8a6c1c40ddf2cd3c13126053ced38e04fc76545195be38ab3f5dd67c50d35e7a1f74f0b679f4d720188b6138173b70719844c0a0bf1b21ff7c7a40
7
- data.tar.gz: 2da2d82b7ac75cc3e3d53e7f6b13f5d4152309fa907e172f6f221407751a4f24666cd3e3c37e2a870738c6f3534772a1b97860de1037c492f6c4b3ec57adb4fe
6
+ metadata.gz: c214dc82ce832ae90d328447062ba8ac98a56ff3ab1056d7724123c8ae0da01bb3909845671b45ce2f869f6c2d880b326d8b7105f2a42c7069ac3618c3aad357
7
+ data.tar.gz: 1b9b8d76c9e547d8af19382d5b0eed3800f4e914f8f5dbe34933c75fdd1c766042ef289af4f0fd4f59167e8d71422a68edf35d88a71693cdba45e1c6781747f6
data/.rubocop.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.4
2
+ TargetRubyVersion: 2.5
3
+ NewCops: enable
3
4
 
4
5
  Style/StringLiterals:
5
6
  Enabled: true
data/CHANGELOG.md CHANGED
@@ -3,3 +3,11 @@
3
3
  ## [0.0.0] - 2021-02-08
4
4
 
5
5
  - Initial release
6
+
7
+
8
+ ## [0.0.1] - 2021-03-15
9
+
10
+ - Unify rest calls into Rester class
11
+ - Improve exception handling including socket errors
12
+ - Switch to yaml for config
13
+ - Use ~/.rockette as consistent location for config and exports
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rockette (0.0.0)
4
+ rockette (0.0.1)
5
5
  rest-client (~> 2.0)
6
6
  thor (~> 1.0)
7
7
 
@@ -9,11 +9,13 @@ GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
11
  ast (2.4.2)
12
+ coderay (1.1.3)
12
13
  domain_name (0.5.20190701)
13
14
  unf (>= 0.0.5, < 1.0.0)
14
15
  http-accept (1.7.0)
15
16
  http-cookie (1.0.3)
16
17
  domain_name (~> 0.5)
18
+ method_source (1.0.0)
17
19
  mime-types (3.3.1)
18
20
  mime-types-data (~> 3.2015)
19
21
  mime-types-data (3.2021.0212)
@@ -22,6 +24,9 @@ GEM
22
24
  parallel (1.20.1)
23
25
  parser (3.0.0.0)
24
26
  ast (~> 2.4.1)
27
+ pry (0.14.0)
28
+ coderay (~> 1.1)
29
+ method_source (~> 1.0)
25
30
  rainbow (3.0.0)
26
31
  rake (13.0.3)
27
32
  regexp_parser (2.1.1)
@@ -55,6 +60,7 @@ PLATFORMS
55
60
 
56
61
  DEPENDENCIES
57
62
  minitest (~> 5.0)
63
+ pry (~> 0.0)
58
64
  rake (~> 13.0)
59
65
  rockette!
60
66
  rubocop (~> 1.7)
data/exe/rockette CHANGED
@@ -1,21 +1,33 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- lib_path = File.expand_path('../lib', __dir__)
5
- $:.unshift(lib_path) if !$:.include?(lib_path)
6
- require 'rockette/cli'
4
+ require "rockette"
7
5
 
8
- CONF = JSON.parse(File.read('config.json'))
6
+ app_path = File.join(Dir.home, ".rockette")
7
+ lib_path = File.expand_path("../lib", __dir__)
8
+ tem_path = File.expand_path("../templates", __dir__)
9
+ $LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include?(lib_path)
10
+
11
+ Dir.mkdir(app_path) unless File.exist?(app_path)
12
+ unless File.exist?(File.join(app_path, "config.yml"))
13
+ template = File.read(File.join(tem_path, "config.yml.erb"))
14
+ data = ERB.new(template).result(binding)
15
+ File.write(File.join(app_path, "config.yml"), data)
16
+ end
17
+ Dir.mkdir(File.join(app_path, "exports")) unless File.exist?(File.join(app_path, "exports"))
18
+
19
+ CONF = Psych.load(File.read(File.join(app_path, "config.yml")))
9
20
  ENV["THOR_SILENCE_DEPRECATION"] = "true"
21
+ EXPORT_DIR = File.join(app_path, "exports")
10
22
 
11
- Signal.trap('INT') do
23
+ Signal.trap("INT") do
12
24
  warn("\n#{caller.join("\n")}: interrupted")
13
25
  exit(1)
14
26
  end
15
27
 
16
28
  begin
17
29
  Rockette::CLI.start
18
- rescue Rockette::CLI::Error => err
19
- puts "ERROR: #{err.message}"
30
+ rescue Rockette::CLI::Error => e
31
+ puts "ERROR: #{e.message}"
20
32
  exit 1
21
- end
33
+ end
data/lib/rockette.rb CHANGED
@@ -1,39 +1,91 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "rockette/version"
3
+ require "erb"
4
+ require "json"
5
+ require "psych"
6
+ require "rest-client"
7
+ require "thor"
8
+ require_relative "rockette/cli"
9
+ require_relative "rockette/text_helper"
10
+ require_relative "rockette/version"
4
11
 
12
+ # APEX deployment
5
13
  module Rockette
6
14
  class Error < StandardError; end
7
- #
8
- # # Export application on APEX instance
9
- # def create_export(body, url)
10
- # response = RestClient.post url, body
11
- # response
12
- # rescue StandardError => e
13
- # # change these, send back the error message, don't puts it!
14
- # puts "Unable to create export because #{e.message}" # puts error
15
- # end
16
-
17
- # # Grab application export from APEX instance
18
- # def grab_export(url)
19
- # response = RestClient.get url
20
- # rescue StandardError => e
21
- # puts "Unable to grab export because #{e.message}" # puts error
22
- # end
23
-
24
- # # Import application export into APEX instance
25
- # def import_app(url, body)
26
- # response = RestClient.post url, body
27
- # rescue StandardError => e
28
- # puts "Unable to import application because #{e.message}" # puts error
29
- # end
30
-
31
- # # Push attachment to api endpoint and show code
32
- # def push_blob(filey, headers, url)
33
- # response = RestClient.post url, filey, headers
34
- # response
35
- # rescue StandardError => e
36
- # puts "Unable to push file because #{e.message}" # puts error
37
- # end
38
15
 
16
+ # rest-client calls with error handling and auto retries
17
+ class Rester
18
+ VERBS = {
19
+ "delete" => :Delete,
20
+ "get" => :Get,
21
+ "post" => :Post,
22
+ "put" => :Put
23
+ }.freeze
24
+
25
+ def initialize(headers: {}, meth: "Get", params: {}, url: "https://array/", config: {})
26
+ @headers = headers
27
+ @meth = meth
28
+ @params = params
29
+ @url = url
30
+ @config = config
31
+ @config["timeout"] = @config["timeout"] ||= 30
32
+ end
33
+
34
+ def make_call
35
+ response = RestClient::Request.execute(headers: @headers,
36
+ method: VERBS[@meth.downcase], payload: @params,
37
+ timeout: @config["timeout"], url: @url, verify_ssl: false)
38
+ rescue SocketError => e
39
+ puts "#{e.class}: #{e.message}"
40
+ nil
41
+ rescue StandardError => e
42
+ e.response
43
+ else
44
+ response
45
+ end
46
+
47
+ def cookie
48
+ if @url =~ %r{auth/session}
49
+ response = make_call
50
+ raise "There was an issue getting a cookie!" unless response.code == 200
51
+
52
+ (response.cookies.map { |key, val| "#{key}=#{val}" })[0]
53
+ else
54
+ error_text("cookie", @url.to_s, "auth/session")
55
+ end
56
+ end
57
+
58
+ # use rest-client with retry
59
+ def rest_try
60
+ 3.times do |i|
61
+ response = make_call
62
+ unless response.nil?
63
+ break response if (200..299).include? response.code
64
+ break response if i > 1
65
+ end
66
+ puts "Failed #{@meth} on #{@url}, retry...#{i + 1}"
67
+ sleep 3 unless i > 1
68
+ return nil if i > 1 # Handles socket errors, etc. where there is no response.
69
+ end
70
+ end
71
+
72
+ private
73
+
74
+ def error_text(method_name, url, wanted)
75
+ {
76
+ "response" =>
77
+ "ERROR: Wrong url for the #{method_name} method.\n"\
78
+ "Sent: #{url}\n"\
79
+ "Expected: \"#{wanted}\" as part of the url.",
80
+ "status" => 400
81
+ }
82
+ end
83
+
84
+ def responder(response)
85
+ {
86
+ "response" => JSON.parse(response.body),
87
+ "status" => response.code.to_i
88
+ }
89
+ end
90
+ end
39
91
  end
data/lib/rockette/cli.rb CHANGED
@@ -1,65 +1,62 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
4
- require 'rest-client'
5
- require 'thor'
6
-
7
3
  module Rockette
8
4
  #
9
5
  # @api public
6
+ # Handle actions and parameters
10
7
  class CLI < Thor
11
8
  # Error raised by this runner
12
9
  Error = Class.new(StandardError)
13
10
 
14
- desc 'version', 'rockette version'
11
+ desc "version", "rockette version"
15
12
  def version
16
- require_relative 'version'
13
+ require_relative "version"
17
14
  puts "v#{Rockette::VERSION}"
18
15
  end
19
- map %w(--version -v) => :version
16
+ map %w[--version -v] => :version
20
17
 
21
- desc 'deploy', 'Deploy chosen export file to target APEX instance'
22
- method_option :help, aliases: '-h', type: :boolean,
23
- desc: 'Display usage information'
24
- option :app_id, aliases: '-a', :required => true,
25
- desc: 'Provide an APEX application ID'
26
- option :file, aliases: '-f', :required => true,
27
- desc: 'Provide an APEX application export file (.sql)'
28
- option :url, aliases: '-u', :required => true,
29
- desc: 'Provide a valid url'
18
+ desc "deploy", "Deploy chosen export file to target APEX instance"
19
+ method_option :help, aliases: "-h", type: :boolean,
20
+ desc: "Display usage information"
21
+ option :app_id, aliases: "-a", required: true,
22
+ desc: "Provide an APEX application ID"
23
+ option :file, aliases: "-f", required: true,
24
+ desc: "Provide an APEX application export file (.sql)"
25
+ option :url, aliases: "-u", required: true,
26
+ desc: "Provide a valid url"
30
27
  def deploy(*)
31
28
  if options[:help]
32
- invoke :help, ['deploy']
29
+ invoke :help, ["deploy"]
33
30
  else
34
- require_relative 'commands/deploy'
31
+ require_relative "commands/deploy"
35
32
  Rockette::Commands::Deploy.new(options).execute
36
33
  end
37
34
  end
38
35
 
39
- desc 'export', 'Export and download application from target APEX environment'
40
- method_option :help, aliases: '-h', type: :boolean,
41
- desc: 'Display usage information'
42
- option :app_id, aliases: '-a', :required => true,
43
- desc: 'Provide an APEX application ID'
44
- option :url, aliases: '-u', :required => true,
45
- desc: 'Provide a valid url'
36
+ desc "export", "Export and download application from target APEX environment"
37
+ method_option :help, aliases: "-h", type: :boolean,
38
+ desc: "Display usage information"
39
+ option :app_id, aliases: "-a", required: true,
40
+ desc: "Provide an APEX application ID"
41
+ option :url, aliases: "-u", required: true,
42
+ desc: "Provide a valid url"
46
43
  def export(*)
47
44
  if options[:help]
48
- invoke :help, ['export']
45
+ invoke :help, ["export"]
49
46
  else
50
- require_relative 'commands/export'
47
+ require_relative "commands/export"
51
48
  Rockette::Commands::Export.new(options).execute
52
49
  end
53
50
  end
54
51
 
55
- desc 'config', 'Command description...'
56
- method_option :help, aliases: '-h', type: :boolean,
57
- desc: 'Display usage information'
52
+ desc "config", "Command description..."
53
+ method_option :help, aliases: "-h", type: :boolean,
54
+ desc: "Display usage information"
58
55
  def config(*)
59
56
  if options[:help]
60
- invoke :help, ['config']
57
+ invoke :help, ["config"]
61
58
  else
62
- require_relative 'commands/config'
59
+ require_relative "commands/config"
63
60
  Rockette::Commands::Config.new(options).execute
64
61
  end
65
62
  end
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'forwardable'
3
+ require "forwardable"
4
4
 
5
5
  module Rockette
6
+ # Enable tty- integration
6
7
  class Command
7
8
  extend Forwardable
8
9
 
@@ -24,7 +25,7 @@ module Rockette
24
25
  #
25
26
  # @api public
26
27
  def command(**options)
27
- require 'tty-command'
28
+ require "tty-command"
28
29
  TTY::Command.new(options)
29
30
  end
30
31
 
@@ -34,7 +35,7 @@ module Rockette
34
35
  #
35
36
  # @api public
36
37
  def cursor
37
- require 'tty-cursor'
38
+ require "tty-cursor"
38
39
  TTY::Cursor
39
40
  end
40
41
 
@@ -44,7 +45,7 @@ module Rockette
44
45
  #
45
46
  # @api public
46
47
  def editor
47
- require 'tty-editor'
48
+ require "tty-editor"
48
49
  TTY::Editor
49
50
  end
50
51
 
@@ -54,7 +55,7 @@ module Rockette
54
55
  #
55
56
  # @api public
56
57
  def generator
57
- require 'tty-file'
58
+ require "tty-file"
58
59
  TTY::File
59
60
  end
60
61
 
@@ -64,7 +65,7 @@ module Rockette
64
65
  #
65
66
  # @api public
66
67
  def pager(**options)
67
- require 'tty-pager'
68
+ require "tty-pager"
68
69
  TTY::Pager.new(options)
69
70
  end
70
71
 
@@ -74,7 +75,7 @@ module Rockette
74
75
  #
75
76
  # @api public
76
77
  def platform
77
- require 'tty-platform'
78
+ require "tty-platform"
78
79
  TTY::Platform.new
79
80
  end
80
81
 
@@ -84,7 +85,7 @@ module Rockette
84
85
  #
85
86
  # @api public
86
87
  def prompt(**options)
87
- require 'tty-prompt'
88
+ require "tty-prompt"
88
89
  TTY::Prompt.new(options)
89
90
  end
90
91
 
@@ -94,7 +95,7 @@ module Rockette
94
95
  #
95
96
  # @api public
96
97
  def screen
97
- require 'tty-screen'
98
+ require "tty-screen"
98
99
  TTY::Screen
99
100
  end
100
101
 
@@ -104,7 +105,7 @@ module Rockette
104
105
  #
105
106
  # @api public
106
107
  def which(*args)
107
- require 'tty-which'
108
+ require "tty-which"
108
109
  TTY::Which.which(*args)
109
110
  end
110
111
 
@@ -114,7 +115,7 @@ module Rockette
114
115
  #
115
116
  # @api public
116
117
  def exec_exist?(*args)
117
- require 'tty-which'
118
+ require "tty-which"
118
119
  TTY::Which.exist?(*args)
119
120
  end
120
121
  end
@@ -1,17 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../command'
3
+ require_relative "../command"
4
4
 
5
5
  module Rockette
6
6
  module Commands
7
+ # Configure Rockette
7
8
  class Config < Rockette::Command
9
+ include TextHelper
10
+
8
11
  def initialize(options)
12
+ super()
9
13
  @options = options
10
14
  end
11
15
 
12
16
  def execute(input: $stdin, output: $stdout)
13
17
  # Command logic goes here ...
14
- output.puts "OK"
18
+ output.puts "Coming soon..."
19
+ check_input(input)
15
20
  end
16
21
  end
17
22
  end
@@ -1,51 +1,53 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../command'
3
+ require_relative "../command"
4
4
 
5
5
  module Rockette
6
6
  module Commands
7
+ # Push export file and import into APEX
7
8
  class Deploy < Rockette::Command
9
+ include TextHelper
10
+
8
11
  def initialize(options)
12
+ super()
9
13
  @options = options
14
+ @filey = "f#{@options[:app_id]}.sql"
10
15
  end
11
16
 
12
- # Import application export into APEX instance
13
- def import_app(url, body)
14
- response = RestClient.post url, body
15
- rescue StandardError => e
16
- puts "Unable to import application because #{e.message}" # puts error
17
+ def importer
18
+ body = CONF["deploy_body"]
19
+ body["app_id_src"] = @options[:app_id]
20
+ body["app_id_tgt"] = @options[:app_id]
21
+ # body["app_id_tgt"] = "0" #test app copy
22
+ url = "#{@options[:url]}deploy/app"
23
+ response = Rester.new(meth: "Post", params: body, url: url).rest_try
24
+ bail unless response
25
+ abort padder("Error. Got back response code: #{response.code}") unless (200..201).include? response.code
26
+ response
17
27
  end
18
28
 
19
- # Push attachment to api endpoint and show code
20
- def push_blob(filey, headers, url)
21
- response = RestClient.post url, filey, headers
29
+ def pusher
30
+ push_hdrs = CONF["push_hdrs"]
31
+ push_hdrs["file_name"] = @filey
32
+ push_url = "#{@options[:url]}data_loader/blob"
33
+ # Push the chosen export file to the target system
34
+ filey = File.join(EXPORT_DIR, @filey)
35
+ response = Rester.new(headers: push_hdrs, meth: "Post", params: File.open(filey), url: push_url).rest_try
36
+ bail unless response
37
+ abort padder("Error. Got back response code: #{response.code}") unless (200..201).include? response.code
22
38
  response
23
- rescue StandardError => e
24
- puts "Unable to push file because #{e.message}" # puts error
25
39
  end
26
40
 
27
41
  def execute(input: $stdin, output: $stdout)
42
+ check_input(input)
28
43
  # Create and download export
29
- output.puts "OK, deploying export file #{@options[:file]}"
30
- filey = "f#{@options[:app_id]}.sql"
31
- # First push the chosen export file to the target system.
32
- push_hdrs = CONF["push_hdrs"]
33
- push_hdrs["file_name"] = filey
34
- push_url = @options[:url] + 'data_loader/blob'
35
- pusher = push_blob(File.open(filey), push_hdrs, push_url)
44
+ output.puts padder("OK, deploying export file #{@filey}")
45
+ pusher
46
+ output.puts padder("Pushed #{@filey} to instance and attempting import now...")
36
47
  # If push was successful, request application import
37
- if pusher.code == 200 || pusher.code == 201
38
- sleep 1 # replace with check for file on server
39
- puts "Pushed #{filey} and attempting import now..."
40
- body = CONF["deploy_body"]
41
- body["app_id_src"] = @options[:app_id]
42
- body["app_id_tgt"] = @options[:app_id]
43
- body["app_id_tgt"] = "0" #test app copy
44
- deploy = import_app(@options[:url] + 'deploy/app', body)
45
- puts deploy.code
46
- puts deploy.headers
47
- puts deploy.body
48
- end
48
+ sleep 1
49
+ importer
50
+ output.puts padder("Deployed #{@filey} to target APEX instance: #{@options[:url]}")
49
51
  end
50
52
  end
51
53
  end
@@ -1,50 +1,55 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../command'
3
+ require_relative "../command"
4
4
 
5
5
  module Rockette
6
6
  module Commands
7
+ # Export and download APEX application
7
8
  class Export < Rockette::Command
9
+ include TextHelper
10
+
8
11
  def initialize(options)
12
+ super()
9
13
  @options = options
14
+ @filey = "f#{@options[:app_id]}.sql"
15
+ end
16
+
17
+ def checker
18
+ app_url = "#{@options[:url]}deploy/apps/#{@options[:app_id]}"
19
+ response = Rester.new(url: app_url).rest_try
20
+ bail unless response
21
+ abort padder("App ID: #{@options[:app_id]}, not found. Received: #{response.code}") unless response.code == 200
10
22
  end
11
23
 
12
- # Export application on APEX instance
13
- def create_export(body, url)
14
- response = RestClient.post url, body
24
+ def exporter
25
+ checker
26
+ puts padder("Found Application ID: #{@options[:app_id]}, proceeding...")
27
+ body = { "app_id" => @options[:app_id] }
28
+ export_url = "#{@options[:url]}deploy/app_export"
29
+ response = Rester.new(meth: "Post", params: body, url: export_url).rest_try
30
+ bail unless response
31
+ abort padder("Export failed for App ID: #{@options[:app_id]}.") unless (200..201).include? response.code
15
32
  response
16
- rescue StandardError => e
17
- # change these, send back the error message, don't puts it!
18
- puts "Unable to create export because #{e.message}" # puts error
19
33
  end
20
34
 
21
- # Grab application export from APEX instance
22
- def grab_export(url)
23
- response = RestClient.get url
24
- rescue StandardError => e
25
- puts "Unable to grab export because #{e.message}" # puts error
35
+ def grabber
36
+ export_url = "#{@options[:url]}deploy/app_export/#{@filey}"
37
+ response = Rester.new(url: export_url).rest_try
38
+ bail unless response
39
+ abort padder("Download failed for App ID: #{@options[:app_id]}.") unless (200..201).include? response.code
40
+ response
26
41
  end
27
42
 
28
43
  def execute(input: $stdin, output: $stdout)
44
+ check_input(input)
29
45
  # Create and download export
30
- output.puts "OK, exporting App ID: #{@options[:app_id]}"
31
- filey = "f#{@options[:app_id]}.sql"
32
- body = {
33
- "app_id" => @options[:app_id]
34
- }
35
- export_url = @options[:url] + 'deploy/app_export'
36
- puts export_url
37
- export = create_export(body, export_url)
38
- if export.code == 201 # Check if export was successfully created first
39
- sleep 1 # Change to query api to see if file is there
40
- export_url = export_url + '/' + filey
41
- response = grab_export(export_url)
42
- # Now write file if export was grabbed.
43
- if response.code == 200 || response.code == 201
44
- File.open(filey, 'wb') {|file| file.write(response.body)}
45
- puts "Downloaded #{filey} and all done here."
46
- end
47
- end
46
+ exporter
47
+ output.puts padder("Export created, downloading...")
48
+ sleep 1
49
+ response = grabber
50
+ # Write file if export was grabbed.
51
+ File.open(File.join(EXPORT_DIR, @filey), "wb") { |file| file.write(response.body) }
52
+ output.puts padder("Finished downloading #{@filey}. Have a good one!")
48
53
  end
49
54
  end
50
55
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Add common methods to Rockette module
4
+ module TextHelper
5
+ def bail
6
+ puts "Bailing, unable to check for application. Can you access the url from here?"
7
+ puts "Double check the url and make sure you have a network connection to the target."
8
+ exit
9
+ end
10
+
11
+ def check_input(input)
12
+ input unless input.nil?
13
+ end
14
+
15
+ def padder(str)
16
+ "\n#{str}\n"
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rockette
4
- VERSION = "0.0.0"
4
+ VERSION = "0.0.1"
5
5
  end
data/rockette.gemspec CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  # Dev dependencies
33
33
  spec.add_development_dependency "pry", "~> 0.0"
34
-
34
+
35
35
  # Uncomment to register a new dependency of your gem
36
36
  spec.add_dependency "rest-client", "~> 2.0"
37
37
  spec.add_dependency "thor", "~> 1.0"
@@ -0,0 +1,17 @@
1
+ ---
2
+ push_hdrs:
3
+ Content-Type: application/json
4
+ created_by: dcs_automation
5
+ message_date: ''
6
+ msg_from_addr: ''
7
+ msg_from_name: ''
8
+ file_charset: UTF-8
9
+ file_mimetype: text/plain
10
+ file_name: ''
11
+ file_type: sql
12
+ tags: ''
13
+ target_use: push_deployment
14
+ deploy_body:
15
+ app_id_src: ''
16
+ app_id_tgt: ''
17
+ blob_url: https://local.data_loader
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rockette
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kody Wilson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-27 00:00:00.000000000 Z
11
+ date: 2021-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -80,8 +80,10 @@ files:
80
80
  - lib/rockette/commands/config.rb
81
81
  - lib/rockette/commands/deploy.rb
82
82
  - lib/rockette/commands/export.rb
83
+ - lib/rockette/text_helper.rb
83
84
  - lib/rockette/version.rb
84
85
  - rockette.gemspec
86
+ - templates/config.yml.erb
85
87
  homepage: https://github.com/kodywilson/rockette
86
88
  licenses:
87
89
  - MIT