rbbt-util 5.26.17 → 5.26.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/util/docker.rb +9 -8
- data/lib/rbbt/util/misc/pipes.rb +4 -1
- data/lib/rbbt/util/open.rb +2 -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: 32759bf92db4aa80e14f462432b0dfebaa9bde7e4fba648c994382e1d33e7f10
|
4
|
+
data.tar.gz: deb3c88c74d37ca13e19b72130fd4e1d48db2d226f17bd53ce0542b3ad3bdb38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 641c78e8aa7362c117095d42e9205f2a60272f18a2b415a867fdcd2c21549eec8106187359ebbceb385d62546f24d7d8682ebc4e90d309692c15500749c6a6c5
|
7
|
+
data.tar.gz: 8766644b5b4b22c3c66fb6f9f9e63c777ef8bf9c115f89dbd12450ea8ef146a5d8485bbd9a0b102d39169be605581c4955f246db01996b20c6f32fbfa20eba1e
|
data/lib/rbbt/util/docker.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module Docker
|
2
2
|
def self.run(image, cmd, options = {})
|
3
|
-
mounts, job_inputs, directory, pipe = Misc.process_options options, :mounts, :job_inputs, :directory, :pipe
|
3
|
+
mounts, job_inputs, directory, pipe, host_user = Misc.process_options options, :mounts, :job_inputs, :directory, :pipe, :host_user
|
4
|
+
pipe = false if pipe.nil?
|
4
5
|
|
5
6
|
if mounts
|
6
7
|
mounts.each{|t,s| FileUtils.mkdir_p s unless File.exist? s}
|
@@ -10,6 +11,8 @@ module Docker
|
|
10
11
|
end
|
11
12
|
|
12
13
|
image_cmd = "-t #{image}"
|
14
|
+
|
15
|
+
user_cmd = host_user ? "-u $(id -u ${USER}):$(id -g ${USER})" : ""
|
13
16
|
|
14
17
|
if directory
|
15
18
|
Path.setup(directory) unless Path === directory
|
@@ -33,12 +36,9 @@ module Docker
|
|
33
36
|
end
|
34
37
|
end
|
35
38
|
end if job_inputs
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
else
|
40
|
-
CMD.cmd_log(cmd, :log => true)
|
41
|
-
end
|
39
|
+
|
40
|
+
cmd = "docker run #{mount_cmd} #{user_cmd} #{image_cmd} #{cmd}"
|
41
|
+
CMD.cmd_log(cmd, :log => true, :pipe => pipe)
|
42
42
|
else
|
43
43
|
TmpFile.with_file do |tmpfile|
|
44
44
|
Path.setup(tmpfile)
|
@@ -62,7 +62,8 @@ module Docker
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end if job_inputs
|
65
|
-
|
65
|
+
|
66
|
+
cmd = "docker run #{mount_cmd} #{user_cmd} #{image_cmd} #{cmd}"
|
66
67
|
CMD.cmd_log(cmd, :log => true)
|
67
68
|
end
|
68
69
|
end
|
data/lib/rbbt/util/misc/pipes.rb
CHANGED
@@ -194,8 +194,11 @@ module Misc
|
|
194
194
|
begin
|
195
195
|
sin.write block
|
196
196
|
rescue IOError
|
197
|
-
Log.error("Tee stream #{i} #{Misc.fingerprint stream} IOError: #{$!.message}");
|
197
|
+
Log.error("Tee stream #{i} #{Misc.fingerprint stream} IOError: #{$!.message} (#{Misc.fingerprint sin})");
|
198
198
|
skip[i] = true
|
199
|
+
rescue
|
200
|
+
Log.error("Tee stream #{i} #{Misc.fingerprint stream} Exception: #{$!.message} (#{Misc.fingerprint sin})");
|
201
|
+
raise $!
|
199
202
|
end unless skip[i]
|
200
203
|
end
|
201
204
|
end
|
data/lib/rbbt/util/open.rb
CHANGED
@@ -272,7 +272,6 @@ module Open
|
|
272
272
|
def self.file_open(file, grep, mode = 'r', invert_grep = false)
|
273
273
|
if (dir_sub_path = find_repo_dir(file))
|
274
274
|
if mode.include? 'w'
|
275
|
-
|
276
275
|
stream = StringIO.new
|
277
276
|
class << stream
|
278
277
|
attr_accessor :dir_sub_path
|
@@ -287,6 +286,8 @@ module Open
|
|
287
286
|
stream = get_stream_from_repo(*dir_sub_path)
|
288
287
|
end
|
289
288
|
else
|
289
|
+
Open.mkdir File.dirname(file) if mode.include? 'w'
|
290
|
+
|
290
291
|
file = file.find if Path === file
|
291
292
|
stream = File.open(file, mode)
|
292
293
|
end
|
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.26.
|
4
|
+
version: 5.26.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|