Sha256: 011afabb5b7384876ef5d9f083725807df509eb7310a30cc0fe13b336dc83471

Contents?: true

Size: 1.25 KB

Versions: 6

Compression:

Stored size: 1.25 KB

Contents

#!/usr/bin/env ruby
# coding: utf-8

require "mcrain"

action, service, *args  = *ARGV
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
MESSAGE

  exit(1)
end

unless args.include?("-v") || args.include?("--verbose")
  require 'logger'
  Mcrain.logger = Logger.new("/dev/null")
end

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" then
    puts "To connect:\nrequire '#{server.client_require}'\nclient = #{server.client_script}"
  end
rescue => e
  $stderr.puts "\e[31m[#{e.class}] #{e.message}\e[0m"
  $stderr.puts e.backtrace.join("\n  ") if verbose
  exit(1)
else
  $stderr.puts "\e[32mOK\e[0m"
  exit(0)
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mcrain-0.3.1 exe/mcrain
mcrain-0.3.0 exe/mcrain
mcrain-0.2.3 exe/mcrain
mcrain-0.2.2 exe/mcrain
mcrain-0.2.1 exe/mcrain
mcrain-0.2.0 exe/mcrain