Sha256: 3f1d8d848a7f0bb686723bee5c3f22b7f70b097066a68776b3d982035853b1cb

Contents?: true

Size: 1.72 KB

Versions: 1

Compression:

Stored size: 1.72 KB

Contents

#!/usr/bin/env ruby
# Copyright (c) 2006 Bradley Taylor, bradley@fluxura.com

require 'optparse'

def run(command, verbose)
  Dir.chdir @options[:conf_path] do
    confs =  Dir.glob("*.yml")
    confs += Dir.glob("*.conf")
    confs.each do |conf|
      cmd = "mongrel_rails cluster::#{command} -C #{conf}"
      cmd += " -v" if verbose
      puts cmd if verbose || command == "status"
      output = `#{cmd}`
      puts output if verbose || command == "status"
      puts "mongrel_rails cluster::#{command} returned an error." unless $?.success?     
    end
  end  
end

@options = {}
@options[:conf_path] = "/etc/mongrel_cluster"
@options[:verbose] = false

OptionParser.new do |opts|
  opts.banner = "Usage: #{$0} (start|stop|restart|status) [options]"
 
  opts.on("-c", "--conf_path PATH", "Path to mongrel_cluster configuration files") { |value| @options[:conf_path] = value }
  opts.on('-v', '--verbose', "Print all called commands and output.") { |value| @options[:verbose] = value }

  if ARGV.empty?
    puts opts
    exit
  else
    @cmd = opts.parse!(ARGV)
    if @cmd.nil?
      puts opts
      exit
    end
  end
  
end

if @options[:conf_path] == nil && !File.directory?(@options[:conf_path])
  puts "Invalid path to mongrel_cluster configuration files: #{@options[:conf_path]}"
  exit
end

case @cmd[0]
when "start": 
  puts "Starting all mongrel_clusters..."
  run "start", @options[:verbose]
when "stop":
  puts "Stopping all mongrel_clusters..."
  run "stop", @options[:verbose]
when "restart":
  puts "Restarting all mongrel_clusters..."
  run "stop", @options[:verbose]
  run "start", @options[:verbose]
when "status":
  puts "Checking all mongrel_clusters..."
  run "status", @options[:verbose]
else
 puts "Unknown command."
end

exit

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongrel_cluster-1.0.2 bin/mongrel_cluster_ctl