rbbt-util 5.9.5 → 5.9.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/rbbt +0 -3
- data/lib/rbbt/util/log.rb +7 -1
- data/lib/rbbt/util/misc.rb +2 -30
- data/lib/rbbt/workflow/step.rb +2 -4
- data/share/rbbt_commands/workflow/task +42 -31
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 00a031a315a0dd1407718fda1f7bac80a7188feb
|
4
|
+
data.tar.gz: a3c428d4dc3898f04842ce9f71bc272a1650525c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e69d574630af05b253b9e87a99ddab01d89809e94f8ac4034d8d2b0ef88255d9cd0334680d5c7828eea1069f850554be66ee3e452972e62373ddb6745cebe5a1
|
7
|
+
data.tar.gz: 2f69eb892223f7512bd94e92d7bc5d59ba7974dbdf677d9c1ae7d9e0ba2d3c0fa28084643319f8bea8f5f50ceaa2c86d55255da95183c2c0ce93e036619de559
|
data/bin/rbbt
CHANGED
data/lib/rbbt/util/log.rb
CHANGED
@@ -16,6 +16,8 @@ module Log
|
|
16
16
|
attr_accessor :logfile, :severity, :nocolor, :tty_size
|
17
17
|
end
|
18
18
|
self.nocolor = ENV["RBBT_NOCOLOR"] == 'true'
|
19
|
+
require 'highline'
|
20
|
+
self.tty_size = HighLine::SystemExtensions.terminal_size.first
|
19
21
|
|
20
22
|
|
21
23
|
def self.with_severity(level)
|
@@ -54,7 +56,11 @@ module Log
|
|
54
56
|
end
|
55
57
|
|
56
58
|
def self.return_line
|
57
|
-
"\033[1A"
|
59
|
+
nocolor ? "" : "\033[1A"
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.clear_line(out = STDOUT)
|
63
|
+
out.puts Log.return_line << " " * Log.tty_size << Log.return_line unless nocolor
|
58
64
|
end
|
59
65
|
|
60
66
|
def self.highlight(str = nil)
|
data/lib/rbbt/util/misc.rb
CHANGED
@@ -16,8 +16,8 @@ class Hash
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
class ParameterException <
|
20
|
-
class FieldNotFoundError <
|
19
|
+
class ParameterException < Exception; end
|
20
|
+
class FieldNotFoundError < Exception;end
|
21
21
|
class Aborted < Exception; end
|
22
22
|
class TryAgain < Exception; end
|
23
23
|
class ClosedStream < Exception; end
|
@@ -173,34 +173,6 @@ module Misc
|
|
173
173
|
[colors, used]
|
174
174
|
end
|
175
175
|
|
176
|
-
#def self.collapse_ranges_old(ranges)
|
177
|
-
# processed = []
|
178
|
-
# last = nil
|
179
|
-
# ranges.sort_by{|range| range.begin }.each do |range|
|
180
|
-
# rbegin = range.begin
|
181
|
-
# rend = range.end
|
182
|
-
# if last.nil? or rbegin > last
|
183
|
-
# processed << range
|
184
|
-
# last = rend
|
185
|
-
# else
|
186
|
-
# new_processed = []
|
187
|
-
# processed.each do |processed_range|
|
188
|
-
# if processed_range.end < rbegin
|
189
|
-
# new_processed << processed_range
|
190
|
-
# else
|
191
|
-
# eend = [rend, processed_range.end].max
|
192
|
-
# new_processed << (processed_range.begin..eend)
|
193
|
-
# break
|
194
|
-
# end
|
195
|
-
# end
|
196
|
-
# processed = new_processed
|
197
|
-
# last = rend if rend > last
|
198
|
-
# end
|
199
|
-
# end
|
200
|
-
#
|
201
|
-
# processed
|
202
|
-
#end
|
203
|
-
|
204
176
|
def self.collapse_ranges(ranges)
|
205
177
|
processed = []
|
206
178
|
last = nil
|
data/lib/rbbt/workflow/step.rb
CHANGED
@@ -232,8 +232,6 @@ class Step
|
|
232
232
|
else
|
233
233
|
Log.medium "Aborting #{path}: #{ @pid }"
|
234
234
|
begin
|
235
|
-
Process.kill("TERM", @pid)
|
236
|
-
sleep 1
|
237
235
|
Process.kill("KILL", @pid)
|
238
236
|
Process.waitpid @pid
|
239
237
|
rescue Exception
|
@@ -284,9 +282,9 @@ class Step
|
|
284
282
|
# placed. In that case, do not consider its dependencies
|
285
283
|
return [] if self.done? and not Open.exists? self.info_file
|
286
284
|
|
287
|
-
|
285
|
+
dependencies.collect{|step|
|
288
286
|
step.rec_dependencies
|
289
|
-
}.flatten.concat
|
287
|
+
}.flatten.concat dependencies
|
290
288
|
end
|
291
289
|
|
292
290
|
def recursive_clean
|
@@ -250,7 +250,7 @@ begin
|
|
250
250
|
exit 0
|
251
251
|
end
|
252
252
|
|
253
|
-
if do_exec
|
253
|
+
if do_exec or (job.respond_to?(:is_exec) and job.is_exec)
|
254
254
|
res = job.exec
|
255
255
|
case
|
256
256
|
when Array === res
|
@@ -283,36 +283,6 @@ begin
|
|
283
283
|
|
284
284
|
job.fork
|
285
285
|
|
286
|
-
puts
|
287
|
-
puts
|
288
|
-
size = Log.tty_size
|
289
|
-
size = 100 if size.nil?
|
290
|
-
|
291
|
-
while not job.done?
|
292
|
-
message = (job.messages and job.messages.any?) ? job.messages.last.strip : "no message"
|
293
|
-
status = job.status || "no status"
|
294
|
-
if job.info and job.info.include? :issued
|
295
|
-
issued = job.info[:issued]
|
296
|
-
issued = Time.parse(issued) unless Time === issued
|
297
|
-
time = Time.now - issued
|
298
|
-
end
|
299
|
-
puts Log.return_line << " " * size << Log.return_line
|
300
|
-
puts Log.return_line << " " * size << Log.return_line
|
301
|
-
puts "#{Log.color :blue, job.path}"
|
302
|
-
puts "Waiting on #{Log.color :blue, job.info[:pid] || job.pid} (#{time ? time.to_i : '?'} sec. ago) " << [Log.color(:cyan, status.to_s),message.strip].compact*" "
|
303
|
-
sleep 2
|
304
|
-
end
|
305
|
-
raise job.messages.last if job.error?
|
306
|
-
|
307
|
-
if job.info and job.info.include? :issued
|
308
|
-
issued = job.info[:issued]
|
309
|
-
issued = Time.parse(issued) unless Time === issued
|
310
|
-
time = Time.now - issued
|
311
|
-
end
|
312
|
-
puts Log.return_line << " " * size << Log.return_line
|
313
|
-
puts Log.return_line << " " * size << Log.return_line
|
314
|
-
puts job.path
|
315
|
-
exit 0
|
316
286
|
else
|
317
287
|
job.run(true)
|
318
288
|
res = job
|
@@ -337,6 +307,47 @@ begin
|
|
337
307
|
else
|
338
308
|
Log.low "Job name: #{job.name}"
|
339
309
|
end
|
310
|
+
|
311
|
+
if do_fork
|
312
|
+
puts
|
313
|
+
space = 1
|
314
|
+
Log.tty_size ||= 100
|
315
|
+
|
316
|
+
while not job.done?
|
317
|
+
message = (job.messages and job.messages.any?) ? job.messages.last.strip : "no message"
|
318
|
+
status = job.status || "no status"
|
319
|
+
if job.info and job.info.include? :issued
|
320
|
+
issued = job.info[:issued]
|
321
|
+
issued = Time.parse(issued) unless Time === issued
|
322
|
+
time = Time.now - issued
|
323
|
+
end
|
324
|
+
|
325
|
+
|
326
|
+
space.times do
|
327
|
+
Log.clear_line
|
328
|
+
end
|
329
|
+
|
330
|
+
puts "#{Log.color :blue, job.path}"
|
331
|
+
str = "Waiting on #{Log.color :blue, job.info[:pid] || job.pid} (#{time ? time.to_i : '?'} sec. ago) " << [Log.color(:cyan, status.to_s),message.strip].compact*" "
|
332
|
+
puts Misc.format_paragraph str, Log.tty_size
|
333
|
+
|
334
|
+
space = 2 + Log.uncolor(str).length / Log.tty_size
|
335
|
+
sleep 2
|
336
|
+
end
|
337
|
+
raise job.messages.last if job.error?
|
338
|
+
|
339
|
+
if job.info and job.info.include? :issued
|
340
|
+
issued = job.info[:issued]
|
341
|
+
issued = Time.parse(issued) unless Time === issued
|
342
|
+
time = Time.now - issued
|
343
|
+
end
|
344
|
+
|
345
|
+
space.times do
|
346
|
+
Log.clear_line
|
347
|
+
end
|
348
|
+
out.puts job.path
|
349
|
+
exit 0
|
350
|
+
end
|
340
351
|
rescue ParameterException
|
341
352
|
SOPT.delete_inputs(workflow.rec_inputs(task.name))
|
342
353
|
usage(workflow, task, $!)
|