docker-spoon 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/spoon.rb +16 -14
- data/lib/spoon/version.rb +1 -1
- metadata +2 -2
data/Gemfile.lock
CHANGED
data/lib/spoon.rb
CHANGED
@@ -11,7 +11,7 @@ module Spoon
|
|
11
11
|
version(Spoon::VERSION)
|
12
12
|
|
13
13
|
main do |instance|
|
14
|
-
|
14
|
+
|
15
15
|
D options.inspect
|
16
16
|
if options[:list]
|
17
17
|
instance_list
|
@@ -55,24 +55,19 @@ module Spoon
|
|
55
55
|
on("-c", "--config FILE", "Config file to use for spoon options")
|
56
56
|
on("--debug", "Enable debug")
|
57
57
|
|
58
|
+
# Read config file & set options
|
59
|
+
eval(File.open(options[:config]).read)
|
60
|
+
|
58
61
|
arg(:instance, :optional, "Spoon instance to connect to")
|
59
62
|
|
60
63
|
use_log_level_option
|
61
64
|
|
62
|
-
def self.parse_config(config_file)
|
63
|
-
eval(File.open(config_file).read)
|
64
|
-
end
|
65
|
-
|
66
65
|
def self.apply_prefix(name)
|
67
|
-
"
|
66
|
+
"#{options[:prefix]}#{name}"
|
68
67
|
end
|
69
68
|
|
70
69
|
def self.remove_prefix(name)
|
71
|
-
|
72
|
-
name[7..-1]
|
73
|
-
else
|
74
|
-
name[6..-1]
|
75
|
-
end
|
70
|
+
name.gsub(/\/?#{options[:prefix]}/, '')
|
76
71
|
end
|
77
72
|
|
78
73
|
def self.image_build
|
@@ -84,7 +79,9 @@ module Spoon
|
|
84
79
|
|
85
80
|
docker_url
|
86
81
|
build_opts = { 't' => options[:image], 'rm' => true }
|
87
|
-
Docker::
|
82
|
+
docker_connection = ::Docker::Connection.new(options[:url], :read_timeout => 3000)
|
83
|
+
|
84
|
+
Docker::Image.build_from_dir(options[:builddir], build_opts, docker_connection) do |chunk|
|
88
85
|
print_docker_response(chunk)
|
89
86
|
end
|
90
87
|
end
|
@@ -138,16 +135,21 @@ module Spoon
|
|
138
135
|
def self.instance_list
|
139
136
|
docker_url
|
140
137
|
puts "List of available spoon containers:"
|
141
|
-
container_list = get_all_containers
|
138
|
+
container_list = get_all_containers.sort { |c1, c2| c1.info["Names"].first.to_s <=> c2.info["Names"].first.to_s }
|
142
139
|
container_list.each do |container|
|
143
140
|
name = container.info["Names"].first.to_s
|
144
141
|
if name.start_with? "/#{options[:prefix]}"
|
145
142
|
running = is_running?(container) ? Rainbow("Running").green : Rainbow("Stopped").red
|
146
|
-
puts "#{remove_prefix(name)} [ #{running} ]".rjust(40)
|
143
|
+
puts "#{remove_prefix(name)} [ #{running} ]".rjust(40) + " " + Rainbow(image_name(container)).yellow
|
147
144
|
end
|
148
145
|
end
|
149
146
|
end
|
150
147
|
|
148
|
+
def self.image_name(container)
|
149
|
+
env = Hash[container.json['Config']['Env'].collect { |v| v.split('=') }]
|
150
|
+
return env['IMAGE_NAME'] || container.json['Config']['Image'].split(':').first
|
151
|
+
end
|
152
|
+
|
151
153
|
def self.strip_slash(name)
|
152
154
|
if name.start_with? "/"
|
153
155
|
name[1..-1]
|
data/lib/spoon/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker-spoon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-07-
|
12
|
+
date: 2014-07-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|