rbbt-util 5.17.81 → 5.17.82
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/rbbt/tsv/stream.rb +1 -1
- data/lib/rbbt/util/misc/development.rb +27 -0
- data/lib/rbbt/util/misc/format.rb +1 -1
- data/lib/rbbt/util/misc/pipes.rb +1 -0
- data/lib/rbbt/util/open.rb +15 -0
- data/lib/rbbt/util/simpleopt/doc.rb +3 -0
- data/lib/rbbt/workflow.rb +16 -4
- data/share/rbbt_commands/watch +34 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06179bbff3dd8c45a91bd877fe23adef43e2299b
|
4
|
+
data.tar.gz: 5bf1cd04f279300d4c4bf2ce91f831f1d675c123
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1042bfebbe214dd1a9ef60c704bfc1bdc209e300fe46c759ee766b7a40c71049e545a7b229a490c1207890c16ce73d890f2cef722f8cfa3a6e0c0c1d434bce3a
|
7
|
+
data.tar.gz: 51734367f0342e5ba6dc2e3432b0892ec99f01951704d65b2c6a8201413f21e9fb5e853f32233134d69d7123b2bf9b9afe8c711d1418eae0b90dddc2348ba819
|
data/lib/rbbt/tsv/stream.rb
CHANGED
@@ -63,7 +63,7 @@ module TSV
|
|
63
63
|
input_options << parser.options
|
64
64
|
preambles << parser.preamble if preamble and not parser.preamble.empty?
|
65
65
|
|
66
|
-
if fix_flat and parser.type == :flat
|
66
|
+
if fix_flat and parser.type == :flat and parser.first_line
|
67
67
|
parts = lines[-1].split("\t")
|
68
68
|
lines[-1] = [parts[0], parts[1..-1]*"|"] * "\t"
|
69
69
|
TSV.stream_flat2double(parser.stream).stream
|
@@ -321,4 +321,31 @@ module Misc
|
|
321
321
|
def self.memory_use(pid=nil)
|
322
322
|
`ps -o rss -p #{pid || $$}`.strip.split.last.to_i
|
323
323
|
end
|
324
|
+
|
325
|
+
PUSHBULLET_KEY=begin
|
326
|
+
if ENV["PUSHBULLET_KEY"]
|
327
|
+
ENV["PUSHBULLET_KEY"]
|
328
|
+
else
|
329
|
+
config_api = File.join(ENV['HOME'], 'config/apps/pushbullet/apikey')
|
330
|
+
if File.exists? config_api
|
331
|
+
File.read(config_api).strip
|
332
|
+
else
|
333
|
+
nil
|
334
|
+
end
|
335
|
+
end
|
336
|
+
end
|
337
|
+
|
338
|
+
def self.notify(description, event='notification', key = nil)
|
339
|
+
if PUSHBULLET_KEY.nil? and key.nil?
|
340
|
+
Log.warn "Could not notify, no PUSHBULLET_KEY"
|
341
|
+
return
|
342
|
+
end
|
343
|
+
|
344
|
+
Thread.new do
|
345
|
+
application = 'rbbt'
|
346
|
+
event ||= 'notification'
|
347
|
+
key ||= PUSHBULLET_KEY
|
348
|
+
`curl -s --header "Authorization: Bearer #{key}" -X POST https://api.pushbullet.com/v2/pushes --header 'Content-Type: application/json' --data-binary '{"type": "note", "title": "#{event}", "body": "#{description}"}'`
|
349
|
+
end
|
350
|
+
end
|
324
351
|
end
|
@@ -56,7 +56,7 @@ module Misc
|
|
56
56
|
def self.format_definition_list_item(dt, dd, size = 80, indent = 20, color = :yellow)
|
57
57
|
dd = "" if dd.nil?
|
58
58
|
dt = Log.color color, dt if color
|
59
|
-
dt = dt.to_s
|
59
|
+
dt = dt.to_s unless dd.empty?
|
60
60
|
len = Log.uncolor(dt).length
|
61
61
|
|
62
62
|
if indent < 0
|
data/lib/rbbt/util/misc/pipes.rb
CHANGED
@@ -267,6 +267,7 @@ module Misc
|
|
267
267
|
lock_options[:lock].unlock
|
268
268
|
end
|
269
269
|
FileUtils.touch path if File.exists? path
|
270
|
+
Open.notify_write(path)
|
270
271
|
rescue Aborted
|
271
272
|
Log.medium "Aborted sensiblewrite -- #{ Log.reset << Log.color(:blue, path) }"
|
272
273
|
content.abort if content.respond_to? :abort
|
data/lib/rbbt/util/open.rb
CHANGED
@@ -427,6 +427,20 @@ module Open
|
|
427
427
|
end
|
428
428
|
end
|
429
429
|
|
430
|
+
def self.notify_write(file)
|
431
|
+
begin
|
432
|
+
notification_file = file + '.notify'
|
433
|
+
if File.exists? notification_file
|
434
|
+
key = Open.read(notification_file).strip
|
435
|
+
key = nil if key.empty?
|
436
|
+
Misc.notify("Wrote " << file, nil, key)
|
437
|
+
FileUtils.rm notification_file
|
438
|
+
end
|
439
|
+
rescue
|
440
|
+
Log.warn "Error notifying write of #{ file }"
|
441
|
+
end
|
442
|
+
end
|
443
|
+
|
430
444
|
def self.write(file, content = nil, options = {})
|
431
445
|
options = Misc.add_defaults options, :mode => 'w'
|
432
446
|
|
@@ -463,5 +477,6 @@ module Open
|
|
463
477
|
end
|
464
478
|
content.close
|
465
479
|
end
|
480
|
+
notify_write(file)
|
466
481
|
end
|
467
482
|
end
|
@@ -47,7 +47,10 @@ module SOPT
|
|
47
47
|
def self.input_doc(inputs, input_types = nil, input_descriptions = nil, input_defaults = nil, input_shortcuts = nil)
|
48
48
|
type = description = default = nil
|
49
49
|
shortcut = ""
|
50
|
+
seen = []
|
50
51
|
inputs.collect do |name|
|
52
|
+
next if seen.include? name
|
53
|
+
seen << name
|
51
54
|
|
52
55
|
type = input_types[name] unless input_types.nil?
|
53
56
|
description = input_descriptions[name] unless input_descriptions.nil?
|
data/lib/rbbt/workflow.rb
CHANGED
@@ -171,17 +171,29 @@ module Workflow
|
|
171
171
|
|
172
172
|
#{{{ ATTR DEFAULTS
|
173
173
|
|
174
|
+
|
175
|
+
def self.workdir=(path)
|
176
|
+
path = Path.setup path.dup unless Path === path
|
177
|
+
@@workdir = path
|
178
|
+
end
|
179
|
+
|
180
|
+
def self.workdir
|
181
|
+
@@workdir ||= if defined? Rbbt
|
182
|
+
Rbbt.var.jobs.find
|
183
|
+
else
|
184
|
+
Path.setup('var/jobs')
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
174
188
|
def workdir=(path)
|
175
189
|
path = Path.setup path.dup unless Path === path
|
176
190
|
@workdir = path
|
177
191
|
end
|
178
192
|
|
179
193
|
def workdir
|
180
|
-
@workdir ||=
|
194
|
+
@workdir ||= begin
|
181
195
|
text = Module === self ? self.to_s : "Misc"
|
182
|
-
|
183
|
-
else
|
184
|
-
Path.setup('var/jobs')
|
196
|
+
Workflow.workdir[text].find
|
185
197
|
end
|
186
198
|
end
|
187
199
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rbbt-util'
|
4
|
+
require 'rbbt/util/simpleopt'
|
5
|
+
|
6
|
+
$0 = "rbbt #{$previous_commands*""} #{ File.basename(__FILE__) }" if $previous_commands
|
7
|
+
|
8
|
+
options = SOPT.setup <<EOF
|
9
|
+
|
10
|
+
Notify on completion of file
|
11
|
+
|
12
|
+
$ rbbt notify [options] <filename>
|
13
|
+
|
14
|
+
Creates a <filename>.notify that will trigger a notification when a process creates it
|
15
|
+
|
16
|
+
-h--help Print this help
|
17
|
+
-k--key* Pushbullet apikey (optinal)
|
18
|
+
|
19
|
+
EOF
|
20
|
+
if options[:help]
|
21
|
+
if defined? rbbt_usage
|
22
|
+
rbbt_usage
|
23
|
+
else
|
24
|
+
puts SOPT.usage
|
25
|
+
end
|
26
|
+
exit 0
|
27
|
+
end
|
28
|
+
|
29
|
+
key = options[:key] || ''
|
30
|
+
file = ARGV.shift
|
31
|
+
notify_file = file + '.notify'
|
32
|
+
Open.write(notify_file, key)
|
33
|
+
|
34
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.17.
|
4
|
+
version: 5.17.82
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -326,6 +326,7 @@ files:
|
|
326
326
|
- share/rbbt_commands/tsv/subset
|
327
327
|
- share/rbbt_commands/tsv/unzip
|
328
328
|
- share/rbbt_commands/tsv/values
|
329
|
+
- share/rbbt_commands/watch
|
329
330
|
- share/rbbt_commands/workflow/cmd
|
330
331
|
- share/rbbt_commands/workflow/example
|
331
332
|
- share/rbbt_commands/workflow/info
|