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