uffizzi-cli 2.2.1 → 2.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 +4 -4
- data/lib/uffizzi/cli/dev.rb +4 -4
- data/lib/uffizzi/services/dev_service.rb +42 -10
- data/lib/uffizzi/version.rb +1 -1
- data/lib/uffizzi.rb +13 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f1280afea82284077769e8545880e7420aede5c114a837f3ae2e21482637bac
|
4
|
+
data.tar.gz: e9f5235cb793d83b710c291c62f5027f0226d400aa836f9ea56c18f95b474d06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca04830842f417cb76799ae64c1106866a4d91a7774a07fa3c63fbbe726eac5ab78381c2059ef23a6157948b457984e723bc0e4273d6dbeda48d406379ebe3e4
|
7
|
+
data.tar.gz: 119bb3460dc17116351d4553400867b6225e6431614bdb6934d5f4dc1c532c0cf21b7d61a254210ac2a0eb0643d7183a6ac301b29ea352d81f6dc6feb6a339f2
|
data/lib/uffizzi/cli/dev.rb
CHANGED
@@ -222,8 +222,8 @@ module Uffizzi
|
|
222
222
|
def launch_demonise_skaffold(config_path)
|
223
223
|
Uffizzi.process.daemon(true)
|
224
224
|
|
225
|
-
at_exit do
|
226
|
-
DevService.
|
225
|
+
Uffizzi.at_exit do
|
226
|
+
DevService.stop_process
|
227
227
|
end
|
228
228
|
|
229
229
|
DevService.save_pid
|
@@ -235,8 +235,8 @@ module Uffizzi
|
|
235
235
|
end
|
236
236
|
|
237
237
|
def launch_basic_skaffold(config_path)
|
238
|
-
at_exit do
|
239
|
-
DevService.
|
238
|
+
Uffizzi.at_exit do
|
239
|
+
DevService.stop_process
|
240
240
|
end
|
241
241
|
|
242
242
|
DevService.save_pid
|
@@ -32,13 +32,27 @@ class DevService
|
|
32
32
|
dev_pid = running_pid
|
33
33
|
skaffold_pid = running_skaffold_pid
|
34
34
|
|
35
|
-
|
36
|
-
|
35
|
+
begin
|
36
|
+
Uffizzi.process.kill('INT', skaffold_pid)
|
37
|
+
rescue Errno::ESRCH
|
38
|
+
end
|
39
|
+
|
40
|
+
wait_process_stop(skaffold_pid)
|
37
41
|
delete_pid
|
42
|
+
|
43
|
+
Uffizzi.process.kill('INT', dev_pid)
|
38
44
|
rescue Errno::ESRCH
|
39
45
|
delete_pid
|
40
46
|
end
|
41
47
|
|
48
|
+
def wait_process_stop(pid)
|
49
|
+
loop do
|
50
|
+
Uffizzi.process.kill(0, pid)
|
51
|
+
sleep(1)
|
52
|
+
end
|
53
|
+
rescue Errno::ESRCH
|
54
|
+
end
|
55
|
+
|
42
56
|
def process_running?
|
43
57
|
pid = running_pid
|
44
58
|
return false unless pid.positive?
|
@@ -50,9 +64,9 @@ class DevService
|
|
50
64
|
end
|
51
65
|
|
52
66
|
def start_check_pid_file_existence
|
53
|
-
|
67
|
+
Uffizzi.thread.new do
|
54
68
|
loop do
|
55
|
-
|
69
|
+
stop_process unless File.exist?(pid_path)
|
56
70
|
sleep(1)
|
57
71
|
end
|
58
72
|
end
|
@@ -62,6 +76,8 @@ class DevService
|
|
62
76
|
Uffizzi.ui.say('Start skaffold')
|
63
77
|
cmd = build_skaffold_dev_command(config_path, options)
|
64
78
|
|
79
|
+
Uffizzi.signal.trap('INT') {}
|
80
|
+
|
65
81
|
Uffizzi.ui.popen2e(cmd) do |_stdin, stdout_and_stderr, wait_thr|
|
66
82
|
pid = wait_thr.pid
|
67
83
|
skaffold_pid = find_skaffold_pid(pid)
|
@@ -198,13 +214,29 @@ class DevService
|
|
198
214
|
Uffizzi::ConfigHelper.dev_environment
|
199
215
|
end
|
200
216
|
|
201
|
-
def find_skaffold_pid(
|
202
|
-
|
203
|
-
pid_regex = /\w*\s+(\d+)\s+#{ppid}.*\sskaffold dev/
|
204
|
-
|
217
|
+
def find_skaffold_pid(pid)
|
218
|
+
pid_regex = /\w*#{pid}.*skaffold dev/
|
205
219
|
io = Uffizzi.ui.popen('ps -ef')
|
206
|
-
|
207
|
-
|
220
|
+
processes = io.readlines.select { |l| l.match?(pid_regex) }
|
221
|
+
|
222
|
+
if processes.count.zero?
|
223
|
+
raise StandardError.new('Can\'t find skaffold process pid')
|
224
|
+
end
|
225
|
+
|
226
|
+
# HACK: For MacOS
|
227
|
+
if processes.count == 1
|
228
|
+
current_pid = processes[0].gsub(/\s+/, ' ').lstrip.split[1]
|
229
|
+
return pid if current_pid.to_s == pid.to_s
|
230
|
+
|
231
|
+
raise StandardError.new('Can\'t find skaffold process pid')
|
232
|
+
end
|
233
|
+
|
234
|
+
# HACK: For Linux
|
235
|
+
parent_process = processes
|
236
|
+
.map { |ps| ps.gsub(/\s+/, ' ').lstrip.split }
|
237
|
+
.detect { |ps| ps[2].to_s == pid.to_s }
|
238
|
+
|
239
|
+
parent_process[1]
|
208
240
|
end
|
209
241
|
end
|
210
242
|
end
|
data/lib/uffizzi/version.rb
CHANGED
data/lib/uffizzi.rb
CHANGED
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: 2.2.
|
4
|
+
version: 2.2.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: 2023-10-
|
12
|
+
date: 2023-10-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|