docker_core 0.0.25 → 0.0.29

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 +72 -0
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1aa25b8f032a45928140b7f29a149f6dfd9e5b658775027a68c0af0149c3a56
4
- data.tar.gz: 0e7384b6cfacba90eaea5a6fcc1c95fad176a350b644030a82aecb01ca41710d
3
+ metadata.gz: c2140de9087b77a0e18d16fce1b19d5e2717df2be9be9031d0b6428ca9edd82b
4
+ data.tar.gz: eadb652ba7df647a1393fa97e96d125d755593c844720ee7ee926d4cd99d70fb
5
5
  SHA512:
6
- metadata.gz: 1152e77399f32f7339b421a8f7a589d2c14545a40ca6670459a56a190e6e73749d01d055649dbc12c2c091aa67690101524ea9e890428a76f8a0217a35adc59b
7
- data.tar.gz: 31bb09aa3c9c01d053764efd20264fc21453e6bb0a0f3c8d26ea71e7804f23f7b90bf190339a7dc91cb382a45cf151eca488bd2f37b595f080b2625e50b4eb66
6
+ metadata.gz: 3a8239bb8ca67edb1b482daf19aa2b4d2e0a72e8b4ad68cff3d386b47b224ac97d82bc12e19af32af1a5e07c9c1feb709394291671f8a4fca9b45e137d43c208
7
+ data.tar.gz: f0b5438ab72e169fdfed38bd7ab6165d326b5739d0f2d77c6610e22c68eb406eb76275231ac4ace0174c9e29bd414aa81743f69f64e546c9d2448a26c79ba61c
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
@@ -40,6 +43,75 @@ module DockerCore
40
43
  module Command
41
44
  end
42
45
 
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
54
+
55
+ # @param [String] service
56
+ def self.service_actived(service)
57
+ return 'active' == Process.capture("systemctl is-active #{service}").downcase
58
+ end
59
+
60
+ def self.swarm_path
61
+ return File.expand_path('~/.swarm')
62
+ end
63
+
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
73
+
74
+ def self.detect_services
75
+ return { docker: self.service_actived('docker') }
76
+ end
77
+
78
+ def self.detect_swarm
79
+ swarm = self.read_swarm.to_sym
80
+ detect = self.detect_services
81
+
82
+ if detect.has_key?(swarm) && detect[swarm]
83
+ return "#{swarm}"
84
+ end
85
+
86
+ index = detect.key(true)
87
+ return "#{index}"
88
+ end
89
+
90
+ def self.swarm_status
91
+ color = Color::GREEN
92
+ detect = self.detect_swarm
93
+
94
+ Color.echo("Swarm: #{detect}", color)
95
+ Color.echo(self.detect_services.to_yaml, color)
96
+ end
97
+
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)
106
+
107
+ if swarm.empty?
108
+ swarm = 'none'
109
+ end
110
+
111
+ Color.echo("Swarm: #{swarm}", Color::GREEN)
112
+ end
113
+ end
114
+
43
115
  module Paser
44
116
  # @param [String] text
45
117
  def self.boolean(text)
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.25
4
+ version: 0.0.29
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-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fileutils