docker_core 0.0.17 → 0.0.18
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/docker_core.rb +74 -68
- 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: 2f80afb4258260ec1da58951eca584f9321f0f21b13f0137865ca42c5852944f
|
4
|
+
data.tar.gz: 8d1c6a6d11b3365c23fb67f618e63d20087afe72bc11b09c9c005cf666daac4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d79c07a8abea54822b90858b3a27e6894dc2d51dd509f37769e879a60c33ee66806fb663480aef403524e93243c4ca02fbfdb3cef23672f1acd132cc41cdf128
|
7
|
+
data.tar.gz: 2e497a18fc9afcefcadc97fc0b89fc364e7dc6c70d78100d426ce05e18db49fe99122f4075c68376eb4737862bfd6577ceafd2f51114cef4659e01449ab7734c
|
data/lib/docker_core.rb
CHANGED
@@ -7,67 +7,60 @@ require('thor')
|
|
7
7
|
require('zlib')
|
8
8
|
|
9
9
|
module DockerCore
|
10
|
-
module
|
11
|
-
|
10
|
+
module Shell
|
11
|
+
# include(Thor::Shell)
|
12
12
|
|
13
|
-
|
14
|
-
|
13
|
+
USER = 'core'
|
14
|
+
GROUP = 'core'
|
15
15
|
|
16
|
-
|
17
|
-
# @param [String] value
|
18
|
-
def self.boolean(value)
|
19
|
-
return %w[true yes on].include?("#{value}".strip.downcase)
|
16
|
+
class Color < Thor::Shell::Color
|
20
17
|
end
|
21
18
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
19
|
+
module Paser
|
20
|
+
# @param [String] value
|
21
|
+
def self.boolean(value)
|
22
|
+
return %w[true yes on].include?("#{value}".strip.downcase)
|
23
|
+
end
|
24
|
+
|
25
|
+
# @param [String] text
|
26
|
+
def self.kebab(text)
|
27
|
+
return "#{text}".gsub(/_/, '-')
|
28
|
+
end
|
26
29
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
+
# @param [Hash] hash
|
31
|
+
def self.options(hash = {})
|
32
|
+
items = []
|
30
33
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
34
|
+
hash.each do |key, value|
|
35
|
+
name = '--' + self.kebab(key)
|
36
|
+
item = (true == value) ? name : %Q(#{name}="#{value}")
|
37
|
+
items << item
|
38
|
+
end
|
39
|
+
|
40
|
+
return items
|
35
41
|
end
|
36
42
|
|
37
|
-
|
38
|
-
|
43
|
+
def self.make(*arguments)
|
44
|
+
items = []
|
39
45
|
|
40
|
-
|
41
|
-
|
46
|
+
arguments.each do |item|
|
47
|
+
if item.is_a?(Array)
|
48
|
+
items.concat(item.map { |value| "#{value}" })
|
49
|
+
next
|
50
|
+
end
|
42
51
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
end
|
52
|
+
if item.is_a?(Hash)
|
53
|
+
items.concat(self.options(item))
|
54
|
+
next
|
55
|
+
end
|
48
56
|
|
49
|
-
|
50
|
-
items.concat(self.options(item))
|
57
|
+
items << "#{item}"
|
51
58
|
next
|
52
59
|
end
|
53
60
|
|
54
|
-
items
|
55
|
-
next
|
61
|
+
return items
|
56
62
|
end
|
57
|
-
|
58
|
-
return items
|
59
|
-
end
|
60
|
-
|
61
|
-
def self.command(*arguments)
|
62
|
-
return self.make(*arguments).join(' ')
|
63
63
|
end
|
64
|
-
end
|
65
|
-
|
66
|
-
module Shell
|
67
|
-
include(Thor::Shell)
|
68
|
-
|
69
|
-
USER = 'core'
|
70
|
-
GROUP = 'core'
|
71
64
|
|
72
65
|
# @param [String] text
|
73
66
|
# @param [Array<String>] colors
|
@@ -87,19 +80,31 @@ module DockerCore
|
|
87
80
|
return puts("#{color}#{text}#{Color::CLEAR}")
|
88
81
|
end
|
89
82
|
|
83
|
+
def self.command(*arguments, substitute: false)
|
84
|
+
if substitute
|
85
|
+
arguments.unshift('su-exec', USER)
|
86
|
+
end
|
87
|
+
|
88
|
+
return Paser.make(*arguments).join(' ')
|
89
|
+
end
|
90
|
+
|
90
91
|
# @param [Boolean] strip
|
91
|
-
def self.capture(*arguments, strip: true)
|
92
|
-
command =
|
92
|
+
def self.capture(*arguments, strip: true, verbose: false, substitute: false)
|
93
|
+
command = self.command(*arguments, substitute: substitute)
|
94
|
+
|
95
|
+
if verbose
|
96
|
+
self.echo("+ #{command}", Color::GREEN)
|
97
|
+
end
|
98
|
+
|
93
99
|
data = `#{command}`
|
94
100
|
return strip ? "#{data}".strip : data
|
95
101
|
end
|
96
102
|
|
97
103
|
# @param [Boolean] force
|
98
|
-
def self.
|
104
|
+
def self.run(*arguments, force: false, substitute: false)
|
99
105
|
begin
|
100
|
-
|
101
|
-
|
102
|
-
print(`#{command}`)
|
106
|
+
data = self.capture(*arguments, strip: false, verbose: true, substitute: substitute)
|
107
|
+
print(data)
|
103
108
|
rescue
|
104
109
|
raise unless force
|
105
110
|
end
|
@@ -107,9 +112,10 @@ module DockerCore
|
|
107
112
|
|
108
113
|
# @param [Boolean] force
|
109
114
|
# @param [String] user
|
110
|
-
def self.
|
111
|
-
|
112
|
-
self.
|
115
|
+
def self.execute(*arguments, substitute: false)
|
116
|
+
command = self.command(*arguments, substitute: substitute)
|
117
|
+
self.echo("= #{command}", Color::CYAN)
|
118
|
+
exec(command)
|
113
119
|
end
|
114
120
|
|
115
121
|
# @param [String] title
|
@@ -124,7 +130,7 @@ module DockerCore
|
|
124
130
|
|
125
131
|
# @param [Array<String>] arguments
|
126
132
|
# @return [Array<String>]
|
127
|
-
def self.
|
133
|
+
def self.find_paths(*arguments)
|
128
134
|
return Dir.glob(arguments.flatten, File::FNM_DOTMATCH).map do |item|
|
129
135
|
next File.path(item)
|
130
136
|
end.filter do |item|
|
@@ -136,14 +142,14 @@ module DockerCore
|
|
136
142
|
# @param [String] user
|
137
143
|
# @param [String] group
|
138
144
|
def self.change_owner(*arguments, user: USER, group: GROUP)
|
139
|
-
self.
|
145
|
+
self.find_paths(*arguments).each do |path|
|
140
146
|
FileUtils.chown_R(user, group, path, force: true)
|
141
147
|
end
|
142
148
|
end
|
143
149
|
|
144
150
|
# @param [Array<String>] arguments
|
145
151
|
def self.change_mode(mode, *arguments)
|
146
|
-
self.
|
152
|
+
self.find_paths(*arguments).each do |path|
|
147
153
|
FileUtils.chmod_R(mode, path, force: true)
|
148
154
|
end
|
149
155
|
end
|
@@ -172,17 +178,17 @@ module DockerCore
|
|
172
178
|
end
|
173
179
|
|
174
180
|
# @param [Array<String>] arguments
|
175
|
-
def self.
|
176
|
-
self.
|
181
|
+
def self.remove_paths(*arguments)
|
182
|
+
self.find_paths(*arguments).each do |path|
|
177
183
|
FileUtils.rm_rf(path)
|
178
184
|
end
|
179
185
|
end
|
180
186
|
|
181
187
|
# @param [String, Array<String>] source
|
182
188
|
# @param [String] target
|
183
|
-
def self.
|
189
|
+
def self.move_paths(source, target)
|
184
190
|
files = [source].flatten
|
185
|
-
FileUtils.mv(self.
|
191
|
+
FileUtils.mv(self.find_paths(*files), target)
|
186
192
|
end
|
187
193
|
|
188
194
|
# @param [String] uri
|
@@ -266,7 +272,7 @@ module DockerCore
|
|
266
272
|
|
267
273
|
# @type [Gem::Package::TarWriter] writer
|
268
274
|
|writer|
|
269
|
-
self.
|
275
|
+
self.find_paths(File.join(path, '**/*')).each do |name|
|
270
276
|
mode = File.stat(name).mode
|
271
277
|
file = name.slice(offset ..)
|
272
278
|
|
@@ -307,10 +313,10 @@ module DockerCore
|
|
307
313
|
# @param [Integer] uid
|
308
314
|
# @param [Integer] gid
|
309
315
|
def self.update_user(uid: 500, gid: 500)
|
310
|
-
self.
|
311
|
-
self.
|
312
|
-
self.
|
313
|
-
self.
|
316
|
+
self.run('deluser', USER, force: true)
|
317
|
+
self.run('delgroup', GROUP, force: true)
|
318
|
+
self.run('addgroup', { system: true, gid: ENV.fetch('DOCKER_CORE_GID', gid) }, GROUP)
|
319
|
+
self.run('adduser', { system: true, 'disabled-password': true, 'no-create-home': true, ingroup: GROUP, gecos: USER, shell: '/bin/bash', uid: ENV.fetch('DOCKER_CORE_UID', uid) }, USER)
|
314
320
|
end
|
315
321
|
|
316
322
|
# @param [String] stdout
|
@@ -327,12 +333,12 @@ module DockerCore
|
|
327
333
|
|
328
334
|
# @param [Array<String>] arguments
|
329
335
|
def self.clear_folders(*arguments, mode: nil)
|
330
|
-
self.
|
336
|
+
self.remove_paths(*arguments)
|
331
337
|
self.make_folders(*arguments, mode: mode)
|
332
338
|
end
|
333
339
|
|
334
340
|
def self.architecture
|
335
|
-
hash = { x86: '386', x86_64: 'amd64', armhf: 'armv6', aarch64: 'arm64' }
|
341
|
+
hash = { x86: '386', x86_64: 'amd64', armhf: 'armv6', armv7l: 'armv7', aarch64: 'arm64' }
|
336
342
|
machine = "#{Etc.uname[:machine]}"
|
337
343
|
return hash.fetch(machine.to_sym, machine)
|
338
344
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- agrozyme
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-08-
|
11
|
+
date: 2021-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fileutils
|