docker_core 0.0.26 → 0.0.30

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/docker_core.rb +96 -40
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59611c639cd8210b57b49f5c538f05b31c840c693c174ad97a0910ae0910713a
4
- data.tar.gz: 267162407a1497ef11607b92328b17d8896465fa309bcec0ade8d29e41fabde2
3
+ metadata.gz: b573f05e0da7921662af50b79f5d408ee1beefc37cd1032a60f2af4608746c31
4
+ data.tar.gz: e2bcafd20bbeaf0d025e50806844117f4cee5f47838ff57b474c3bfa416ba3a6
5
5
  SHA512:
6
- metadata.gz: 28ab87b38c6cd69fa0bf13ad9187058b48b3d461cef229c4c2c4d24a2f3abb33fabe5a8c7b7383f6b0ba72a2f138b4a52ceaab15ba9d4932debfa4e065e8272a
7
- data.tar.gz: 2ad3d345775b85deae503d88f860194aead2db16a3fea44f9e70d7c7e2571f6bc0ce4234bf6ce5bf8beff5dd0c14a04909527ffa8907d34fe3cb4fcdba946a52
6
+ metadata.gz: 78ef0c1353140635610d4c34ac5789e9c29739e160dea69183b7a14ac6b914ed00a8c2da020ab77b8700a76ac4c1fd0780450199ccc30ada5e5faec37a43e257
7
+ data.tar.gz: 84c1b1fe408427e78b074a4346be1187f9ca587d928769269cb107335db2038bc3fb787a4a9d70aa5a10d5f0ed6ee6d2d81f58c66e463191bbed80a4fd5e5cbc
data/lib/docker_core.rb CHANGED
@@ -4,12 +4,15 @@ require('json')
4
4
  require('net/http')
5
5
  require('rubygems/package')
6
6
  require('thor')
7
+ require('yaml')
7
8
  require('zlib')
8
9
 
9
10
  module DockerCore
10
11
  SUDO = false
11
12
  USER = 'core'
12
13
  GROUP = 'core'
14
+ REGISTRY = 'docker.io'
15
+ NAMESPACE = 'library'
13
16
 
14
17
  class Color < Thor::Shell::Color
15
18
  # @param [String] text
@@ -38,63 +41,113 @@ module DockerCore
38
41
  end
39
42
 
40
43
  module Command
41
- module Swarm
42
- def self.swarm_path
43
- return File.expand_path('~/.swarm')
44
- end
44
+ end
45
45
 
46
- # @param [String] service
47
- def self.service_actived(service)
48
- return 'active' == Process.capture("systemctl is-active #{service}").downcase
49
- end
46
+ module Swarm
47
+ # @param [String] image
48
+ # @param [String] registry
49
+ # @param [String] namespace
50
+ # @param [String] tag
51
+ def self.use_image(image, registry: REGISTRY, namespace: NAMESPACE, tag: 'latest')
52
+ return [registry, namespace, image].join('/') + ":#{tag}"
53
+ end
50
54
 
51
- # @param [String] name
52
- def self.write_swarm(name = '')
53
- return File.write(self.swarm_path, "#{name}\n")
54
- end
55
+ # @param [String] service
56
+ def self.service_actived(service)
57
+ return 'active' == Process.capture("systemctl is-active #{service}").downcase
58
+ end
55
59
 
56
- def self.read_swarm
57
- file = self.swarm_path
58
- return File.exists?(file) ? File.read(file).strip : ''
59
- end
60
+ def self.swarm_path
61
+ return File.expand_path('~/.swarm')
62
+ end
60
63
 
61
- # @param [String] name
62
- def self.update_swarm(name = '')
63
- if false == name.empty?
64
- self.write_swarm(name)
65
- end
64
+ # @param [String] swarm
65
+ def self.write_swarm(swarm = '')
66
+ return File.write(self.swarm_path, "#{swarm}\n")
67
+ end
68
+
69
+ def self.read_swarm
70
+ file = self.swarm_path
71
+ return File.exists?(file) ? File.read(file).strip : ''
72
+ end
66
73
 
67
- name = self.detect_swarm
68
- self.write_swarm(name)
74
+ def self.detect_services
75
+ return { docker: self.service_actived('docker') }
76
+ end
69
77
 
70
- if name.empty?
71
- name = 'none'
72
- end
78
+ def self.detect_swarm
79
+ swarm = self.read_swarm.to_sym
80
+ detect = self.detect_services
73
81
 
74
- Color.echo("Swarm: #{name}", Color::GREEN)
82
+ if detect.has_key?(swarm) && detect[swarm]
83
+ return "#{swarm}"
75
84
  end
76
85
 
77
- def self.detect_swarm
78
- swarm = self.read_swarm
79
- detect = self.detect_services
86
+ index = detect.key(true)
87
+ return "#{index}"
88
+ end
80
89
 
81
- if detect.has_key?(swarm) && detect[swarm.to_sym]
82
- return swarm
83
- end
90
+ def self.swarm_status
91
+ color = Color::GREEN
92
+ detect = self.detect_swarm
84
93
 
85
- index = detect.key(true)
94
+ Color.echo("Swarm: #{detect}", color)
95
+ Color.echo(self.detect_services.to_yaml, color)
96
+ end
86
97
 
87
- if index.nil?
88
- return ''
89
- end
98
+ # @param [String] swarm
99
+ def self.update_swarm(swarm = '')
100
+ if false == swarm.empty?
101
+ self.write_swarm(swarm)
102
+ end
103
+
104
+ swarm = self.detect_swarm
105
+ self.write_swarm(swarm)
90
106
 
91
- return index.to_s
107
+ if swarm.empty?
108
+ swarm = 'none'
92
109
  end
93
110
 
94
- def self.detect_services
95
- return { docker: self.service_actived('docker') }
111
+ Color.echo("Swarm: #{swarm}", Color::GREEN)
112
+ end
113
+
114
+ # @param [String] base
115
+ # @param [String] relative
116
+ def self.pair_paths(base, relative = '')
117
+ items = {}
118
+
119
+ { inside: base, outside: Dir.pwd }.each do |key, value|
120
+ items[key] = File.join(value, relative)
96
121
  end
122
+
123
+ return items
124
+ end
125
+
126
+ # @param [Array] arguments
127
+ # @param [Boolean] throw
128
+ # @param [Numeric] wait
129
+ # @param [Boolean] strip
130
+ # @param [Boolean] echo
131
+ # @return [String]
132
+ def self.capture_command(*arguments, environment: {}, throw: false, wait: 0, strip: true, echo: false)
133
+ raise "No implement #{__method__} method"
134
+ end
135
+
136
+ # @param [Array] arguments
137
+ # @param [Boolean] throw
138
+ # @param [Numeric] wait
139
+ # @param [Boolean] echo
140
+ # @return [Boolean]
141
+ def self.run_command(*arguments, environment: {}, throw: true, wait: 0, echo: true)
142
+ raise "No implement #{__method__} method"
97
143
  end
144
+
145
+ #noinspection RubyClassVariableUsageInspection
146
+ def self.swarm
147
+ @@swarm ||= self.detect_swarm
148
+ return "#{@@swarm}"
149
+ end
150
+
98
151
  end
99
152
 
100
153
  module Paser
@@ -480,6 +533,9 @@ module DockerCore
480
533
  uri = URI("https://api.github.com/repos/#{repository}/releases/latest")
481
534
  data = JSON.parse(Net::HTTP.get(uri))['tag_name']
482
535
  return "#{data}"
536
+
537
+
538
+
483
539
  end
484
540
  end
485
541
 
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.26
4
+ version: 0.0.30
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-30 00:00:00.000000000 Z
11
+ date: 2021-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fileutils