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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 72371631590029a1533bf6e899fa51833c924fd89e070c2747bea4bd1257a906
4
- data.tar.gz: 5855c06aa2c9444779f214783d35d56925fed96ed010c1fb187f4549618e63f2
3
+ metadata.gz: df6e6d3493e78bba7aa90acd7e51c84b8b869e5fac3e1fe696ed67e29a50219c
4
+ data.tar.gz: 7b5b9e9ae374085166d01b17ddf16c7ba740b50f5f0c4dfb407bb9da2ffcc6bc
5
5
  SHA512:
6
- metadata.gz: 81fe1f8e49f5a706a8a357b5a071513f2f14e83d072e18300e7ec3fd7c15e18280302b77817b0b5f29d123bca871d136df086310cef6c1f5183410a35ff18309
7
- data.tar.gz: 3baeb218d6423e04a2ccb86d02e5717c48c92af3e30833d2ff909ae480681c28db79e5586c7f5fa84691142d94960eeec7f1b2a9a2e26325bcd5e2ca10219036
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
- begin
141
- Process.getpgid(pid) # should be dead already (raising Errno::ESRCH)
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
- begin
144
- Process.getpgid(pid) # should be dead now (raising Errno::ESRCH)
145
- raise "Process ##{pid} did not terminate after SIGTERM"
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.2'
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 1
19
- SimpleCov.minimum_coverage_by_file 1
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; tail -f /dev/null', accept: nil) do
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.1)
129
+ sleep(0.01)
128
130
  stop = true
129
- t.join(0.01)
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qbash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko