qbash 0.4.2 → 0.4.3
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/Gemfile +1 -0
- data/Gemfile.lock +8 -0
- data/lib/qbash.rb +8 -8
- data/qbash.gemspec +1 -1
- data/test/test__helper.rb +2 -2
- data/test/test_qbash.rb +5 -5
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df6e6d3493e78bba7aa90acd7e51c84b8b869e5fac3e1fe696ed67e29a50219c
|
4
|
+
data.tar.gz: 7b5b9e9ae374085166d01b17ddf16c7ba740b50f5f0c4dfb407bb9da2ffcc6bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 348fabb99cb7a962b51d354b0b668e08e009f9c82db7433c91fa738336e19f0e51c9cd319d0dae522a73813e7a80344a54e717cca09d9f67ad1068e403058966
|
7
|
+
data.tar.gz: 3c72c3b7a39d5e3523cda49ed38be201147e07d15f8cae5b69bfd74b5f2cec6b8a8ac3f4d7d78ffc321a415893ed1c46005372030aa651a15679d8686523eac3
|
data/Gemfile
CHANGED
@@ -12,6 +12,7 @@ gem 'minitest-reporters', '~>1.7', require: false
|
|
12
12
|
gem 'net-ping', '~>2.0', require: false
|
13
13
|
gem 'rake', '~>13.2', require: false
|
14
14
|
gem 'random-port', '~>0.0', require: false
|
15
|
+
gem 'rdoc', '~>6.13', require: false
|
15
16
|
gem 'rubocop', '~>1.73', require: false
|
16
17
|
gem 'rubocop-minitest', '>0', require: false
|
17
18
|
gem 'rubocop-performance', '>0', require: false
|
data/Gemfile.lock
CHANGED
@@ -45,6 +45,7 @@ GEM
|
|
45
45
|
cucumber-messages (> 19, < 28)
|
46
46
|
cucumber-messages (22.0.0)
|
47
47
|
cucumber-tag-expressions (6.1.2)
|
48
|
+
date (3.4.1)
|
48
49
|
diff-lcs (1.6.1)
|
49
50
|
docile (1.4.1)
|
50
51
|
elapsed (0.0.1)
|
@@ -94,12 +95,17 @@ GEM
|
|
94
95
|
ast (~> 2.4.1)
|
95
96
|
racc
|
96
97
|
prism (1.4.0)
|
98
|
+
psych (5.2.5)
|
99
|
+
date
|
100
|
+
stringio
|
97
101
|
public_suffix (6.0.2)
|
98
102
|
racc (1.8.1)
|
99
103
|
rainbow (3.1.1)
|
100
104
|
rake (13.2.1)
|
101
105
|
random-port (0.7.5)
|
102
106
|
tago (> 0)
|
107
|
+
rdoc (6.13.1)
|
108
|
+
psych (>= 4.0.0)
|
103
109
|
regexp_parser (2.10.0)
|
104
110
|
rexml (3.4.1)
|
105
111
|
rubocop (1.75.5)
|
@@ -137,6 +143,7 @@ GEM
|
|
137
143
|
simplecov (~> 0.19)
|
138
144
|
simplecov-html (0.13.1)
|
139
145
|
simplecov_json_formatter (0.1.4)
|
146
|
+
stringio (3.1.7)
|
140
147
|
sys-uname (1.3.1)
|
141
148
|
ffi (~> 1.1)
|
142
149
|
tago (0.1.0)
|
@@ -171,6 +178,7 @@ DEPENDENCIES
|
|
171
178
|
qbash!
|
172
179
|
rake (~> 13.2)
|
173
180
|
random-port (~> 0.0)
|
181
|
+
rdoc (~> 6.13)
|
174
182
|
rubocop (~> 1.73)
|
175
183
|
rubocop-minitest (> 0)
|
176
184
|
rubocop-performance (> 0)
|
data/lib/qbash.rb
CHANGED
@@ -137,17 +137,17 @@ module Kernel
|
|
137
137
|
sout.close
|
138
138
|
watch.join(0.01)
|
139
139
|
watch.kill if watch.alive?
|
140
|
-
|
141
|
-
|
140
|
+
attempt = 1
|
141
|
+
since = Time.now
|
142
|
+
loop do
|
143
|
+
Process.kill(0, pid) # should be dead already (raising Errno::ESRCH)
|
142
144
|
Process.kill('TERM', pid) # let's try to kill it
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
rescue Errno::ESRCH
|
147
|
-
logit["Process ##{pid} killed with SIGTERM"]
|
148
|
-
end
|
145
|
+
logit["Tried to stop ##{pid} with SIGTERM (attempt no.#{attempt}, #{since.ago}): #{cmd}"]
|
146
|
+
sleep(0.1)
|
147
|
+
attempt += 1
|
149
148
|
rescue Errno::ESRCH
|
150
149
|
logit["Process ##{pid} exited gracefully"]
|
150
|
+
break
|
151
151
|
end
|
152
152
|
else
|
153
153
|
consume.call
|
data/qbash.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
|
10
10
|
s.required_ruby_version = '>=3.2'
|
11
11
|
s.name = 'qbash'
|
12
|
-
s.version = '0.4.
|
12
|
+
s.version = '0.4.3'
|
13
13
|
s.license = 'MIT'
|
14
14
|
s.summary = 'Quick Executor of a BASH Command'
|
15
15
|
s.description =
|
data/test/test__helper.rb
CHANGED
@@ -15,8 +15,8 @@ unless SimpleCov.running || ENV['PICKS']
|
|
15
15
|
SimpleCov::Formatter::CoberturaFormatter
|
16
16
|
]
|
17
17
|
)
|
18
|
-
SimpleCov.minimum_coverage
|
19
|
-
SimpleCov.minimum_coverage_by_file
|
18
|
+
SimpleCov.minimum_coverage 95
|
19
|
+
SimpleCov.minimum_coverage_by_file 95
|
20
20
|
SimpleCov.start do
|
21
21
|
add_filter 'test/'
|
22
22
|
add_filter 'vendor/'
|
data/test/test_qbash.rb
CHANGED
@@ -117,18 +117,18 @@ class TestQbash < Minitest::Test
|
|
117
117
|
|
118
118
|
def test_exists_after_background_stop
|
119
119
|
stop = false
|
120
|
+
pid = nil
|
120
121
|
t =
|
121
122
|
Thread.new do
|
122
|
-
qbash('trap "" TERM;
|
123
|
+
qbash('trap "" TERM; sleep 10', accept: nil) do |id|
|
124
|
+
pid = id
|
123
125
|
loop { break if stop }
|
124
126
|
end
|
125
127
|
end
|
126
128
|
t.abort_on_exception = true
|
127
|
-
sleep(0.
|
129
|
+
sleep(0.01)
|
128
130
|
stop = true
|
129
|
-
t.join(0.
|
131
|
+
refute(t.join(0.1))
|
130
132
|
t.kill
|
131
|
-
sleep(0.01)
|
132
|
-
refute_predicate(t, :alive?)
|
133
133
|
end
|
134
134
|
end
|