donce 0.4.0 → 0.5.0
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.lock +10 -8
- data/donce.gemspec +1 -1
- data/lib/donce.rb +8 -7
- 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: '03161908e407496425db2581fce2d802d834fce0e06cc97daf13de1c2edecc21'
|
|
4
|
+
data.tar.gz: 7339a08b6820ec2aa9e0bda4067e3fd8947b387509ea96f9ac4e9971399ac24e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 81203a7306ab4edd80ac3ce16a27bcacb8505bb73bd99c3d0ad629193cdd98222b7e954382d671a76e9a3f8f2a461914f5a18c2f7845955dc31242b3b8796c09
|
|
7
|
+
data.tar.gz: f4978002f8c14db6783e5480f0f50e064e6c6883c6c1de61d4728022fa522bdc98be1cba1449ad88ec2db8eb08c2a2f65f18691eef9a673f71ffbaf8157e322f
|
data/Gemfile.lock
CHANGED
|
@@ -15,15 +15,17 @@ GEM
|
|
|
15
15
|
builder (3.3.0)
|
|
16
16
|
date (3.5.1)
|
|
17
17
|
docile (1.4.1)
|
|
18
|
-
elapsed (0.2.
|
|
18
|
+
elapsed (0.2.2)
|
|
19
19
|
loog (~> 0.6)
|
|
20
20
|
tago (~> 0.1)
|
|
21
|
+
ellipsized (0.3.0)
|
|
21
22
|
erb (6.0.1)
|
|
22
23
|
json (2.18.0)
|
|
23
24
|
language_server-protocol (3.17.0.5)
|
|
24
25
|
lint_roller (1.1.0)
|
|
25
26
|
logger (1.7.0)
|
|
26
|
-
loog (0.
|
|
27
|
+
loog (0.7.2)
|
|
28
|
+
ellipsized
|
|
27
29
|
logger (~> 1.0)
|
|
28
30
|
minitest (6.0.1)
|
|
29
31
|
prism (~> 1.5)
|
|
@@ -32,18 +34,18 @@ GEM
|
|
|
32
34
|
builder
|
|
33
35
|
minitest (>= 5.0)
|
|
34
36
|
ruby-progressbar
|
|
35
|
-
minitest-retry (0.3.
|
|
37
|
+
minitest-retry (0.3.1)
|
|
36
38
|
minitest (>= 5.0)
|
|
37
39
|
os (1.1.4)
|
|
38
40
|
parallel (1.27.0)
|
|
39
|
-
parser (3.3.10.
|
|
41
|
+
parser (3.3.10.1)
|
|
40
42
|
ast (~> 2.4.1)
|
|
41
43
|
racc
|
|
42
|
-
prism (1.
|
|
44
|
+
prism (1.8.0)
|
|
43
45
|
psych (5.3.1)
|
|
44
46
|
date
|
|
45
47
|
stringio
|
|
46
|
-
qbash (0.
|
|
48
|
+
qbash (0.7.1)
|
|
47
49
|
backtrace (> 0)
|
|
48
50
|
elapsed (> 0)
|
|
49
51
|
loog (> 0)
|
|
@@ -51,7 +53,7 @@ GEM
|
|
|
51
53
|
racc (1.8.1)
|
|
52
54
|
rainbow (3.1.1)
|
|
53
55
|
rake (13.3.1)
|
|
54
|
-
rdoc (7.0
|
|
56
|
+
rdoc (7.1.0)
|
|
55
57
|
erb
|
|
56
58
|
psych (>= 4.0.0)
|
|
57
59
|
tsort
|
|
@@ -93,7 +95,7 @@ GEM
|
|
|
93
95
|
simplecov-html (0.13.2)
|
|
94
96
|
simplecov_json_formatter (0.1.4)
|
|
95
97
|
stringio (3.2.0)
|
|
96
|
-
tago (0.
|
|
98
|
+
tago (0.7.0)
|
|
97
99
|
tsort (0.2.0)
|
|
98
100
|
unicode-display_width (3.2.0)
|
|
99
101
|
unicode-emoji (~> 4.1)
|
data/donce.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.0'
|
|
11
11
|
s.name = 'donce'
|
|
12
|
-
s.version = '0.
|
|
12
|
+
s.version = '0.5.0'
|
|
13
13
|
s.license = 'MIT'
|
|
14
14
|
s.summary = 'Builds and starts temporary Docker containers'
|
|
15
15
|
s.description =
|
data/lib/donce.rb
CHANGED
|
@@ -81,7 +81,8 @@ module Kernel
|
|
|
81
81
|
raise 'The "volumes" must be a Hash' unless volumes.is_a?(Hash)
|
|
82
82
|
raise 'The "log" is nil' if log.nil?
|
|
83
83
|
raise 'The "args" is nil' if args.nil?
|
|
84
|
-
raise 'The "args" must be a String' unless args.is_a?(String)
|
|
84
|
+
raise 'The "args" must be a String or Array' unless args.is_a?(String) || args.is_a?(Array)
|
|
85
|
+
args = args.join(' ') if args.is_a?(Array)
|
|
85
86
|
raise 'The "env" is nil' if env.nil?
|
|
86
87
|
raise 'The "env" must be a Hash' unless env.is_a?(Hash)
|
|
87
88
|
raise 'The "command" is nil' if command.nil?
|
|
@@ -110,10 +111,10 @@ module Kernel
|
|
|
110
111
|
Dir.mktmpdir do |tmp|
|
|
111
112
|
dockerfile = dockerfile.join("\n") if dockerfile.is_a?(Array)
|
|
112
113
|
File.write(File.join(tmp, 'Dockerfile'), dockerfile)
|
|
113
|
-
qbash("#{docker} build #{a} #{Shellwords.escape(tmp)}", log
|
|
114
|
+
qbash("#{docker} build #{a} #{Shellwords.escape(tmp)}", stdout: log)
|
|
114
115
|
end
|
|
115
116
|
elsif home
|
|
116
|
-
qbash("#{docker} build #{a} #{Shellwords.escape(home)}", log
|
|
117
|
+
qbash("#{docker} build #{a} #{Shellwords.escape(home)}", stdout: log)
|
|
117
118
|
else
|
|
118
119
|
raise 'Either "dockerfile" or "home" must be provided'
|
|
119
120
|
end
|
|
@@ -141,7 +142,7 @@ module Kernel
|
|
|
141
142
|
Timeout.timeout(timeout) do
|
|
142
143
|
qbash(
|
|
143
144
|
cmd,
|
|
144
|
-
log
|
|
145
|
+
stdout: log,
|
|
145
146
|
accept: nil,
|
|
146
147
|
both: true,
|
|
147
148
|
env:
|
|
@@ -158,15 +159,15 @@ module Kernel
|
|
|
158
159
|
logs = qbash(
|
|
159
160
|
"#{docker} logs #{Shellwords.escape(container)}",
|
|
160
161
|
level: code.zero? ? Logger::DEBUG : Logger::ERROR,
|
|
161
|
-
log
|
|
162
|
+
stdout: log
|
|
162
163
|
)
|
|
163
164
|
stdout = logs if block_given?
|
|
164
|
-
qbash("#{docker} rm --force #{Shellwords.escape(container)}", log
|
|
165
|
+
qbash("#{docker} rm --force #{Shellwords.escape(container)}", stdout: log)
|
|
165
166
|
end
|
|
166
167
|
stdout
|
|
167
168
|
ensure
|
|
168
169
|
Timeout.timeout(10) do
|
|
169
|
-
qbash("#{docker} rmi #{img}", log
|
|
170
|
+
qbash("#{docker} rmi #{img}", stdout: log) unless image
|
|
170
171
|
end
|
|
171
172
|
end
|
|
172
173
|
end
|