uffizzi-cli 0.10.1 → 0.11.2

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: aad4e300e1250ee113d65b436b58045b368c707c5840bc26375918a33c894a5a
4
- data.tar.gz: 711dc99c47c9d073405da14ce9409e2bfe99eaca6028143da0eccb7961ba8426
3
+ metadata.gz: 7c1515d3dbc2f3e8cdf08d18602248f6059aede5e63c702600f0cca97efa19d8
4
+ data.tar.gz: 7945ef89453d07a194f61102ab72484a24b5b4a44ebc834cb7bbfac06393e1bb
5
5
  SHA512:
6
- metadata.gz: aebda9657557027599278995e7a97bef373b118cdf4a8055d17706f418ffbd7b6a126703dfa5901833ab2c7198f91d91c5f07da5c836b0b602382a6fe860c235
7
- data.tar.gz: 951c78b92cbee8f70a5b41231fa56cd9ea0cf3ec278c174b703a065567eb1d4ddfca18484396c5db208ea85d6fd1ad8f59c8c9a8a8c29ebbbc5fbe8b308e0ff8
6
+ metadata.gz: 0deb98fdefb88dd09a65f1991c7980fe253eea34325f0cc044433823fe4ef2408d3dd2002078a141e94830ea8e3db4aa938dda9bfcf17b51f9526900ac04ba75
7
+ data.tar.gz: bc4b3deeae31d244aa8d2b76e3ab00ca671af015df70f328c9a843ffd27270275d098bdbe20fa5421db242e9311c93e2854be04063863086207180dae2a1fd4d
@@ -15,7 +15,7 @@ module Uffizzi
15
15
  end
16
16
 
17
17
  def run
18
- Uffizzi.ui.say('Login to Uffizzi to view and manage your previews.')
18
+ Uffizzi.ui.say('Login to Uffizzi server.')
19
19
  server = set_server
20
20
 
21
21
  username = set_username
@@ -34,7 +34,8 @@ module Uffizzi
34
34
 
35
35
  def set_server
36
36
  config_server = ConfigFile.exists? ? read_option_from_config(:server) : nil
37
- @options[:server] || config_server || Uffizzi.ui.ask('Server: ')
37
+ server_address = @options[:server] || config_server || Uffizzi.ui.ask('Server: ')
38
+ server_address.start_with?('http:', 'https:') ? server_address : "https://#{server_address}"
38
39
  end
39
40
 
40
41
  def set_username
@@ -68,6 +69,8 @@ module Uffizzi
68
69
  ConfigFile.write_option(:cookie, response[:headers])
69
70
  ConfigFile.write_option(:account_id, account[:id])
70
71
 
72
+ Uffizzi.ui.say('Login successfull')
73
+
71
74
  default_project = ConfigFile.read_option(:project)
72
75
  return unless default_project
73
76
 
@@ -68,7 +68,7 @@ module Uffizzi
68
68
 
69
69
  def handle_succeed_logs_response(response, container_name)
70
70
  logs = response[:body][:logs] || []
71
- return Uffizzi.ui.say("The service #{container_name} has no logs") if logs.empty?
71
+ return Uffizzi.ui.say("The service '#{container_name}' has no logs") if logs.empty?
72
72
 
73
73
  logs.each do |log|
74
74
  Uffizzi.ui.say(log)
data/lib/uffizzi/cli.rb CHANGED
@@ -64,8 +64,8 @@ module Uffizzi
64
64
  super
65
65
  rescue Interrupt
66
66
  raise Uffizzi::Error.new('The command was interrupted')
67
- rescue SocketError
68
- raise Uffizzi::Error.new('A request was not sent to Uffizzi app')
67
+ rescue StandardError => e
68
+ raise Uffizzi::Error.new(e.message)
69
69
  end
70
70
 
71
71
  private
@@ -92,10 +92,9 @@ module Uffizzi
92
92
  end
93
93
 
94
94
  def write(data)
95
- file = create_file
96
95
  prepared_data = prepare_data(data)
97
- file.write(prepared_data)
98
- file.close
96
+
97
+ lock(config_path) { atomic_write(config_path, "#{config_path}.tmp", prepared_data) }
99
98
  end
100
99
 
101
100
  def prepare_data(data)
@@ -105,12 +104,18 @@ module Uffizzi
105
104
  end
106
105
  end
107
106
 
108
- def create_file
109
- dir = File.dirname(config_path)
107
+ def atomic_write(path, temp_path, content)
108
+ File.open(temp_path, 'w') { |f| f.write(content) }
109
+ FileUtils.mv(temp_path, path)
110
+ end
110
111
 
112
+ def lock(path)
113
+ dir = File.dirname(path)
111
114
  FileUtils.mkdir_p(dir) unless File.directory?(dir)
112
115
 
113
- File.new(config_path, 'w')
116
+ File.open(path).flock(File::LOCK_EX) if File.exist?(path)
117
+ yield
118
+ File.open(path).flock(File::LOCK_UN)
114
119
  end
115
120
  end
116
121
  end
@@ -42,14 +42,18 @@ module Uffizzi
42
42
  def prepare_errors(errors)
43
43
  errors.values.reduce('') do |acc, error_messages|
44
44
  if error_messages.is_a?(Array)
45
- error_messages.each { |error_message| acc = "#{acc}#{error_message}\n" }
45
+ error_messages.each { |error_message| acc = "#{acc}#{prepare_error_message(error_message)}\n" }
46
46
  else
47
- acc = "#{acc}#{error_messages}\n"
47
+ acc = "#{acc}#{prepare_error_message(error_message)}\n"
48
48
  end
49
49
 
50
50
  acc
51
51
  end
52
52
  end
53
+
54
+ def prepare_error_message(error_message)
55
+ error_message.split('::').last
56
+ end
53
57
  end
54
58
  end
55
59
  end
@@ -20,7 +20,7 @@ class PreviewService
20
20
  deployment_id = deployment[:id]
21
21
  params = { id: deployment_id }
22
22
 
23
- response = deploy_containers(Uffizzi::ConfigFile.read_option(:server), project_slug, deployment_id, params)
23
+ response = deploy_containers(server_url, project_slug, deployment_id, params)
24
24
 
25
25
  if !Uffizzi::ResponseHelper.no_content?(response)
26
26
  Uffizzi::ResponseHelper.handle_failed_response(response)
@@ -32,13 +32,17 @@ class PreviewService
32
32
 
33
33
  private
34
34
 
35
+ def server_url
36
+ @server_url ||= Uffizzi::ConfigFile.read_option(:server)
37
+ end
38
+
35
39
  def wait_containers_creation(deployment, project_slug)
36
40
  spinner = TTY::Spinner.new('[:spinner] Creating containers...', format: :dots)
37
41
  spinner.auto_spin
38
42
 
39
43
  activity_items = []
40
44
  loop do
41
- response = get_activity_items(Uffizzi::ConfigFile.read_option(:server), project_slug, deployment[:id])
45
+ response = get_activity_items(server_url, project_slug, deployment[:id])
42
46
  handle_activity_items_response(response, spinner)
43
47
  activity_items = response[:body][:activity_items]
44
48
  break if activity_items.count == deployment[:containers].count
@@ -62,7 +66,7 @@ class PreviewService
62
66
  containers_spinners = create_containers_spinners(activity_items, spinner)
63
67
 
64
68
  loop do
65
- response = get_activity_items(Uffizzi::ConfigFile.read_option(:server), project_slug, deployment[:id])
69
+ response = get_activity_items(server_url, project_slug, deployment[:id])
66
70
  handle_activity_items_response(response, spinner)
67
71
  activity_items = response[:body][:activity_items]
68
72
  update_containers_spinners!(activity_items, containers_spinners)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Uffizzi
4
- VERSION = '0.10.1'
4
+ VERSION = '0.11.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uffizzi-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Thurman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-06-01 00:00:00.000000000 Z
12
+ date: 2022-07-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: awesome_print