exe/mcrain in mcrain-0.3.1 vs exe/mcrain in mcrain-0.3.2
- old
+ new
@@ -2,17 +2,25 @@
# coding: utf-8
require "mcrain"
action, service, *args = *ARGV
-verbose = ARGV.include?('-V') || ARGV.include?('--verbose')
+verbose = ARGV.include?('-V') || ARGV.include?('--verbose')
if action.nil? || service.nil?
$stderr.puts(<<MESSAGE)
-#{$PROGRAM_NAME} <action> <target> [n] [-v or --verbose]
- action: start or stop
- service: redis, rabbitmq, mysql or riak
- n: cluster size for riak
+#{$PROGRAM_NAME} <action> <service> [n] [-v or --verbose]
+ actions: start, stop or pull
+
+ start:
+ service: redis, rabbitmq, mysql or riak
+ n: cluster size for riak
+
+ stop:
+ service: redis, rabbitmq, mysql or riak
+
+ pull:
+ service: redis, rabbitmq, mysql, riak or all
MESSAGE
exit(1)
end
@@ -23,18 +31,24 @@
begin
options = {}
case service
when "riak" then
- raise "DOCKER_RIAK_PATH is blank. Set it the path to docker-riak repository." unless ENV['DOCKER_RIAK_PATH']
- Mcrain::Riak.docker_riak_path = ENV['DOCKER_RIAK_PATH']
cluster_size = args.shift.to_i
cluster_size = 1 if cluster_size == 0
options = {cluster_size: cluster_size, automatic_clustering: cluster_size > 1}
end
- server = Mcrain.lookup(service.to_sym, options)
- server.send(action)
+ case action
+ when "start", "stop" then
+ server = Mcrain.lookup(service.to_sym, options)
+ server.send(action)
+ when "pull" then
+ services = (service == "all") ? Mcrain.images.keys : [service]
+ services.map(&:to_sym).map{|s| Mcrain.class_for(s)}.each(&:pull_image)
+ else
+ raise "Unknown action: #{action.inspect}"
+ end
case action
when "start" then
puts "To connect:\nrequire '#{server.client_require}'\nclient = #{server.client_script}"
end