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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +10 -8
  3. data/donce.gemspec +1 -1
  4. data/lib/donce.rb +8 -7
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7ba4eef3f8cae9725b0919d93c200393d552c88688b8b448c9f2960a0dae2a9
4
- data.tar.gz: 3383251951e61584d0ced59f93a421f73f68da0ace2ca9eda40f0cc701e415fb
3
+ metadata.gz: '03161908e407496425db2581fce2d802d834fce0e06cc97daf13de1c2edecc21'
4
+ data.tar.gz: 7339a08b6820ec2aa9e0bda4067e3fd8947b387509ea96f9ac4e9971399ac24e
5
5
  SHA512:
6
- metadata.gz: 071de606e7dde5336605819b229e83e3de1812109448fe647f95460e02a9129c16f2eacd240e06d796cfcbddedeb6d1cf8be7b6755fbfef00d2aa85127ec9b60
7
- data.tar.gz: 4b522e4e6fdfd8f211d18834211983b5c0b95e2433c697d7834f92a153d32942b5fa8a97c398026195247eb2b8599526af0e8788c722a1dab8936993bbd075e8
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.1)
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.6.1)
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.0)
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.0)
41
+ parser (3.3.10.1)
40
42
  ast (~> 2.4.1)
41
43
  racc
42
- prism (1.7.0)
44
+ prism (1.8.0)
43
45
  psych (5.3.1)
44
46
  date
45
47
  stringio
46
- qbash (0.5.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.3)
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.6.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.4.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:) unless image
170
+ qbash("#{docker} rmi #{img}", stdout: log) unless image
170
171
  end
171
172
  end
172
173
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: donce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko