bin/bluepill in evented_bluepill-0.0.47 vs bin/bluepill in evented_bluepill-0.0.50

- old
+ new

@@ -1,108 +1,15 @@ #! /usr/bin/env ruby # -*- encoding: utf-8 -*- -require 'optparse' -require 'bluepill' +require 'evented_bluepill/options' +require 'evented_bluepill/controller' -# Default options -options = { - :log_file => "/var/log/bluepill.log", - :base_dir => "/var/bluepill", - :privileged => true -} +STDERR.puts "*** DEPRECATION WARNING: using 'bluepill' is deprecated. Please use 'evented_bluepill' instead ***" -OptionParser.new do |opts| - opts.banner = "Usage: bluepill [app] cmd [options]" - opts.on('-l', "--logfile LOGFILE", "Path to logfile, defaults to #{options[:log_file]}") do |file| - options[:log_file] = file - end +EventedBluepill::Options.parse! - opts.on('-c', "--base-dir DIR", "Directory to store bluepill socket and pid files, defaults to #{options[:base_dir]}") do |base_dir| - options[:base_dir] = base_dir - end +command = ARGV.shift +target = ARGV.shift +application = EventedBluepill::Options[:application] - opts.on("-v", "--version") do - puts "bluepill, version #{Bluepill::VERSION}" - exit - end - - opts.on("--[no-]privileged", "Allow/disallow to run #{$0} as non-privileged process. disallowed by default") do |v| - options[:privileged] = v - end - - help = proc do - puts opts - puts - puts "Commands:" - puts " load CONFIG_FILE\t\tLoads new instance of bluepill using the specified config file" - puts " status\t\t\tLists the status of the proceses for the specified app" - puts " start [TARGET]\t\tIssues the start command for the target process or group, defaults to all processes" - puts " stop [TARGET]\t\tIssues the stop command for the target process or group, defaults to all processes" - puts " restart [TARGET]\t\tIssues the restart command for the target process or group, defaults to all processes" - puts " unmonitor [TARGET]\t\tStop monitoring target process or group, defaults to all processes" - puts " log [TARGET]\t\tShow the log for the specified process or group, defaults to all for app" - puts " quit\t\t\tStop bluepill" - puts - puts "See http://github.com/arya/bluepill for README" - exit - end - - opts.on_tail('-h','--help', 'Show this message', &help) - help.call if ARGV.empty? -end.parse! - -# Check for root -if options[:privileged] && ::Process.euid != 0 - $stderr.puts "You must run bluepill as root or use --no-privileged option." - exit(3) -end - -APPLICATION_COMMANDS = %w(status start stop restart unmonitor quit log) - -controller = Bluepill::Controller.new(options.slice(:base_dir, :log_file)) - -if controller.running_applications.include?(File.basename($0)) && File.symlink?($0) - # bluepill was called as a symlink with the name of the target application - options[:application] = File.basename($0) -elsif controller.running_applications.include?(ARGV.first) - # the first arg is the application name - options[:application] = ARGV.shift -elsif APPLICATION_COMMANDS.include?(ARGV.first) - if controller.running_applications.length == 1 - # there is only one, let's just use that - options[:application] = controller.running_applications.first - elsif controller.running_applications.length > 1 - # There is more than one, tell them the list and exit - $stderr.puts "You must specify an application name to run that command. Here's the list of running applications:" - controller.running_applications.each_with_index do |app, index| - $stderr.puts " #{index + 1}. #{app}" - end - $stderr.puts "Usage: bluepill [app] cmd [options]" - exit(1) - else - # There are none running AND they aren't trying to start one - $stderr.puts "Error: There are no running bluepill daemons.\nTo start a bluepill daemon, use: bluepill load <config file>" - exit(2) - end -end - -options[:command] = ARGV.shift - -if options[:command] == "load" - file = ARGV.shift - if File.exists?(file) - # Restart the ruby interpreter for the config file so that anything loaded here - # does not stay in memory for the daemon - require 'rbconfig' - ruby = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) - load_path = File.expand_path("#{File.dirname(__FILE__)}/../lib") - file_path = File.expand_path(file) - - exec(ruby, "-I#{load_path}", '-rbluepill', file_path) - - else - $stderr.puts "Can't find file: #{file}" - end -else - target = ARGV.shift - controller.handle_command(options[:application], options[:command], target) -end +controller = EventedBluepill::Controller.new +controller.handle_command(application, command, target)