marketplace-kit 0.2.1 → 0.2.2

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: d097ad89b43f1bca5625489193194ccdbce4d586
4
- data.tar.gz: aa42bd855f0195ed154ff7dfecd1ac310be56c9c
3
+ metadata.gz: 4cf0ff59d61afee0ea9b0805086835383abd268a
4
+ data.tar.gz: d19b7935d2593fd5bfd6ad6099a99998c704093a
5
5
  SHA512:
6
- metadata.gz: c3132226f839c6e1341601af8ed828a4a2bced49325ddb6c49ad72a4e953fa2ae7fc9650dedc68cb948dd23e70627a0574e33fafd0d1f32e43a2e1be4057c416
7
- data.tar.gz: b1235bb4cf5ee93ec706be06fe77dcb0a575bbf145ecc6cab23345a85d1835639ddd7c04b689434937785504655cb75e3deb16760c22d5f05680854f7837636a
6
+ metadata.gz: 507de84b9c1ba794a37bef6804e50ea26cf9c0babb3867d9fa0ab46d04d1de5a1848b6dfcfbe11df66c6c618d43d79f9d0e16f0995350fd9ab6c2e75c06f886f
7
+ data.tar.gz: d8c2d35a7d153a06725b2b23d9b74fa8627587cc9e6043f5c6813987162cbf9512db0285d7230c00213eb9e7839c3a55e1686cdd196fdb7f017b65385ea48c58
@@ -17,9 +17,12 @@ require 'marketplace_kit/services/config'
17
17
  require 'marketplace_kit/services/api_driver'
18
18
  require 'marketplace_kit/services/api_gateway'
19
19
  require 'marketplace_kit/commands/base_command'
20
+ require 'marketplace_kit/commands/base_authorized_command'
20
21
  require 'marketplace_kit/commands/sync'
21
22
  require 'marketplace_kit/commands/deploy'
22
23
  require 'marketplace_kit/commands/pull'
24
+ require 'marketplace_kit/commands/show_version'
25
+ require 'marketplace_kit/commands/show_help'
23
26
 
24
27
  module MarketplaceKit
25
28
  MARKETPLACE_BUILDER_FOLDER = 'marketplace_builder'.freeze
@@ -1,16 +1,13 @@
1
1
  module MarketplaceKit
2
2
  class CommandDispatcher
3
3
  extend Forwardable
4
- def_delegators :args_parser, :command_name, :command_args, :current_env
4
+ def_delegators :args_parser, :command_name, :command_args
5
5
 
6
6
  def initialize(args)
7
7
  @args = args
8
8
  end
9
9
 
10
10
  def execute
11
- MarketplaceKit.config.load current_env
12
- user_authentication.authenticate
13
-
14
11
  command.new(command_args).execute
15
12
  rescue Errors::MarketplaceError => e
16
13
  puts e.message.red
@@ -23,16 +20,14 @@ module MarketplaceKit
23
20
  when 'sync' then Commands::Sync
24
21
  when 'deploy' then Commands::Deploy
25
22
  when 'pull' then Commands::Pull
26
- else raise Errors::MarketplaceError.new('Usage: marketplace-kit sync | deploy | pull')
27
- end
23
+ when '--version', '-v' then Commands::ShowVersion
24
+ when '--help', '-h' then Commands::ShowHelp
25
+ else Commands::ShowHelp
26
+ end
28
27
  end
29
28
 
30
29
  def args_parser
31
30
  @args_parse ||= Services::ArgsParser.new @args
32
31
  end
33
-
34
- def user_authentication
35
- @user_authentication ||= Services::UserAuthentication.new
36
- end
37
32
  end
38
33
  end
@@ -0,0 +1,41 @@
1
+ module MarketplaceKit
2
+ module Commands
3
+ class BaseAuthorizedCommand < BaseCommand
4
+ def initialize(command_args)
5
+ @command_args = command_args
6
+ authenticate
7
+ end
8
+
9
+ protected
10
+
11
+ def ensure_tmp_folder_exist
12
+ Dir.mkdir('tmp') unless File.exist?('tmp')
13
+ end
14
+
15
+ def gateway
16
+ @gateway ||= Services::ApiGateway.new
17
+ end
18
+
19
+ def authenticate
20
+ MarketplaceKit.config.load current_env
21
+ user_authentication.authenticate
22
+ end
23
+
24
+ def current_env
25
+ endpoint_arg_value
26
+ end
27
+
28
+ def endpoint_arg_index
29
+ @endpoint_arg_index ||= @command_args.find_index { |arg| arg == '-e' }
30
+ end
31
+
32
+ def endpoint_arg_value
33
+ endpoint_arg_index && @command_args[endpoint_arg_index + 1]
34
+ end
35
+
36
+ def user_authentication
37
+ @user_authentication ||= Services::UserAuthentication.new
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,19 +1,11 @@
1
1
  module MarketplaceKit
2
2
  module Commands
3
3
  class BaseCommand
4
+ include Services::Loggable
5
+
4
6
  def initialize(command_args)
5
7
  @command_args = command_args
6
8
  end
7
-
8
- protected
9
-
10
- def ensure_tmp_folder_exist
11
- Dir.mkdir('tmp') unless File.exist?('tmp')
12
- end
13
-
14
- def gateway
15
- @gateway ||= Services::ApiGateway.new
16
- end
17
9
  end
18
10
  end
19
11
  end
@@ -1,8 +1,6 @@
1
1
  module MarketplaceKit
2
2
  module Commands
3
- class Deploy < BaseCommand
4
- include Services::Loggable
5
-
3
+ class Deploy < BaseAuthorizedCommand
6
4
  def execute
7
5
  log :deploy_started
8
6
  ensure_tmp_folder_exist
@@ -57,7 +55,7 @@ module MarketplaceKit
57
55
  def handle_deploy_result(deploy_response)
58
56
  print "\n"
59
57
  if deploy_response.body['status'] == 'success'
60
- puts 'success'.green
58
+ log :deploy_succeeded
61
59
  else
62
60
  parsed_error = JSON.parse(deploy_response.body['error'])
63
61
  log :api_error, parsed_error['message'], parsed_error['details']
@@ -1,8 +1,6 @@
1
1
  module MarketplaceKit
2
2
  module Commands
3
- class Pull < BaseCommand
4
- include Services::Loggable
5
-
3
+ class Pull < BaseAuthorizedCommand
6
4
  def execute
7
5
  log :pull_started
8
6
  ensure_tmp_folder_exist
@@ -48,7 +46,7 @@ module MarketplaceKit
48
46
  def handle_deploy_result(deploy_response)
49
47
  print "\n"
50
48
  if deploy_response.body['status'] == 'success'
51
- puts 'success'.green
49
+ log :pull_succeeded
52
50
  deploy_response
53
51
  else
54
52
  parsed_error = JSON.parse(deploy_response.body['error'])
@@ -0,0 +1,12 @@
1
+ module MarketplaceKit
2
+ module Commands
3
+ class ShowHelp < BaseCommand
4
+ include Services::Loggable
5
+
6
+ def execute
7
+ ShowVersion.new(nil).execute
8
+ log :usage
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ module MarketplaceKit
2
+ module Commands
3
+ class ShowVersion < BaseCommand
4
+ include Services::Loggable
5
+
6
+ def execute
7
+ log :version, MarketplaceKit::VERSION
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,8 +1,6 @@
1
1
  module MarketplaceKit
2
2
  module Commands
3
- class Sync < BaseCommand
4
- include Services::Loggable
5
-
3
+ class Sync < BaseAuthorizedCommand
6
4
  def execute
7
5
  log :sync_command_started
8
6
 
@@ -23,8 +21,6 @@ module MarketplaceKit
23
21
  def on_file_change(file_path)
24
22
  log :sync_updating, file_path
25
23
  response = gateway.send_file_change relative_file_path(file_path), File.read(file_path)
26
-
27
- log :sync_done if response.success?
28
24
  end
29
25
 
30
26
  def relative_file_path(file_path)
@@ -72,7 +72,9 @@ module MarketplaceKit
72
72
  'UserTemporaryToken' => MarketplaceKit.config.token,
73
73
  'Accept' => 'application/vnd.nearme.v4+json'
74
74
  }
75
- }
75
+ }.tap do |config|
76
+ config[:ssl] = { verify: false } unless MarketplaceKit.config.endpoint == 'production'
77
+ end
76
78
  end
77
79
 
78
80
  def fix_font_file_encoding
@@ -1,8 +1,6 @@
1
1
  module MarketplaceKit
2
2
  module Services
3
3
  class ArgsParser
4
- DEFAULT_ENV = 'localhost'
5
-
6
4
  def initialize(args)
7
5
  @args = args
8
6
  end
@@ -14,21 +12,6 @@ module MarketplaceKit
14
12
  def command_args
15
13
  @args[1..-1] || []
16
14
  end
17
-
18
- def current_env
19
- return DEFAULT_ENV unless e_arg_index
20
- env_arg_value || DEFAULT_ENV
21
- end
22
-
23
- private
24
-
25
- def e_arg_index
26
- @e_arg_index ||= command_args.find_index { |arg| arg == '-e' }
27
- end
28
-
29
- def env_arg_value
30
- command_args[e_arg_index + 1]
31
- end
32
15
  end
33
16
  end
34
17
  end
@@ -1,13 +1,17 @@
1
1
  module MarketplaceKit
2
2
  module Services
3
3
  class Config
4
+ def endpoint
5
+ @endpoint
6
+ end
7
+
4
8
  def load(endpoint_name)
5
9
  @config = {}
6
- @endpoint = endpoint_name
7
10
 
8
11
  load_config_from '.builder'
9
12
  load_config_from '.builder-autogenerated', required: false
10
13
 
14
+ @endpoint = endpoint_name || default_endpoint
11
15
  raise Errors::MarketplaceError.new 'Error: Invalid env passed!' if @config[@endpoint].nil?
12
16
  rescue Errno::ENOENT
13
17
  raise Errors::MarketplaceError.new 'Please create .builder file in order to continue.'
@@ -26,6 +30,10 @@ module MarketplaceKit
26
30
  @config[@endpoint]['url'].to_s
27
31
  end
28
32
 
33
+ def default_endpoint
34
+ @config.select { |_k, config| config['default']}.keys.first || 'localhost'.freeze
35
+ end
36
+
29
37
  private
30
38
 
31
39
  def load_config_from(file_name, options = {})
@@ -40,12 +48,12 @@ module MarketplaceKit
40
48
  File.write("#{MarketplaceKit.builder_folder}.builder-autogenerated", config.to_json)
41
49
  end
42
50
 
43
- def autogenerated_config
44
- return {} unless File.exist?("#{MarketplaceKit.builder_folder}.builder-autogenerated")
51
+ def autogenerated_config
52
+ return {} unless File.exist?("#{MarketplaceKit.builder_folder}.builder-autogenerated")
45
53
 
46
- raw_config = File.read("#{MarketplaceKit.builder_folder}.builder-autogenerated")
47
- JSON.parse raw_config
48
- end
54
+ raw_config = File.read("#{MarketplaceKit.builder_folder}.builder-autogenerated")
55
+ JSON.parse raw_config
56
+ end
49
57
  end
50
58
  end
51
59
  end
@@ -2,7 +2,7 @@ module MarketplaceKit
2
2
  module Services
3
3
  class Logger
4
4
  def deploy_started
5
- puts 'Deploy command started!'.green
5
+ puts 'Deploy command started'.green
6
6
  end
7
7
 
8
8
  def compressing_folder
@@ -10,15 +10,19 @@ module MarketplaceKit
10
10
  end
11
11
 
12
12
  def sending_zip
13
- puts 'Sending zip to the server'.yellow
13
+ puts 'Sending zip file to the server'.yellow
14
14
  end
15
15
 
16
16
  def wait_for_deploy_finish
17
17
  puts 'Waiting for deploy to finish'.yellow
18
18
  end
19
19
 
20
+ def deploy_succeeded
21
+ puts 'Deploy command succeded'.green
22
+ end
23
+
20
24
  def pull_started
21
- puts 'Pull command started!'.green
25
+ puts 'Pull command started'.green
22
26
  end
23
27
 
24
28
  def request_backup
@@ -29,6 +33,10 @@ module MarketplaceKit
29
33
  puts 'Waiting for backup to finish'.yellow
30
34
  end
31
35
 
36
+ def pull_succeeded
37
+ puts 'Pull command succeded'.green
38
+ end
39
+
32
40
  def sync_command_started
33
41
  puts 'Sync mode enabled'.green
34
42
  end
@@ -37,22 +45,29 @@ module MarketplaceKit
37
45
  puts "Updating: #{file_path}".green
38
46
  end
39
47
 
40
- def sync_done
41
- puts 'Done!'.green
42
- end
43
-
44
48
  def ask_for_email
45
- puts 'Enter your email'
49
+ puts 'Enter your email:'.yellow
46
50
  end
47
51
 
48
52
  def ask_for_password
49
- puts 'Enter your password'
53
+ puts 'Enter your password:'.yellow
50
54
  end
51
55
 
52
56
  def redirect_tip
53
57
  puts 'Server returned redirect code (possible a wrong domain in config file?)'.yellow
54
58
  end
55
59
 
60
+ def version(version)
61
+ puts "marketplace-kit #{version}"
62
+ end
63
+
64
+ def usage
65
+ puts ''
66
+ puts 'Usage: marketplace-kit sync | deploy | pull'
67
+ puts ' -e endpoint endpoint from your config file'
68
+ puts ' -v show current version'
69
+ end
70
+
56
71
  def json_error(source)
57
72
  puts '```'.red
58
73
  puts 'Error while parsing JSON'.red
@@ -1,3 +1,3 @@
1
1
  module MarketplaceKit
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '0.2.2'.freeze
3
3
  end
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "localhost": {
3
- "url": "http://localhost:3000"
3
+ "url": "http://localhost:3000",
4
+ "default": true
4
5
  },
5
6
  "staging": {
6
7
  "url": "http://staging-url.com"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marketplace-kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Janeczek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-22 00:00:00.000000000 Z
11
+ date: 2017-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -198,9 +198,12 @@ files:
198
198
  - bin/setup
199
199
  - lib/marketplace_kit.rb
200
200
  - lib/marketplace_kit/command_dispatcher.rb
201
+ - lib/marketplace_kit/commands/base_authorized_command.rb
201
202
  - lib/marketplace_kit/commands/base_command.rb
202
203
  - lib/marketplace_kit/commands/deploy.rb
203
204
  - lib/marketplace_kit/commands/pull.rb
205
+ - lib/marketplace_kit/commands/show_help.rb
206
+ - lib/marketplace_kit/commands/show_version.rb
204
207
  - lib/marketplace_kit/commands/sync.rb
205
208
  - lib/marketplace_kit/errors/api_error.rb
206
209
  - lib/marketplace_kit/errors/marketplace_error.rb