Parent

Methods

Class/Module Index [+]

Quicksearch

Ramaze::Bin::Restart

Restarts an application based on a specified directory/rackup file and PID. The PID is used to kill the process, the Rackup file is used to start the process again after it has been killed.

Usage:

ramaze restart
ramaze restart /home/foobar/projects/ramaze/ \
-P /home/foobar/projects/ramaze/ramaze.pid

@author Yorick Peterse @since 21-07-2011

Constants

Banner

The banner, displayed when the -h or --help option is specified.

Description

The description of this command, displayed in the global help message.

Public Class Methods

new() click to toggle source

Creates a new instance of the command and sets all the options.

@author Yorick Peterse @since 21-07-2011

# File lib/ramaze/bin/restart.rb, line 39
def initialize
  @options = OptionParser.new do |opt|
    opt.banner         = Banner
    opt.summary_indent = '  '

    opt.separator "\nOptions:\n"

    opt.on('-h', '--help', 'Shows this help message') do
      puts @options
      exit
    end

    opt.on(
      '-P',
      '--pid FILE',
      'Uses the PID to kill the application'
    ) do |pid|
      @pid = pid
    end
  end
end

Public Instance Methods

run(argv = []) click to toggle source

Runs the command based on the specified command line arguments.

@author Yorick Peterse @since 21-07-2011 @param [Array] argv An array containing all command line arguments.

# File lib/ramaze/bin/restart.rb, line 68
def run(argv = [])
  @options.parse!(argv)

  @rackup = argv.delete_at(0)
  @rackup = File.join(Dir.pwd, 'config.ru') if @rackup.nil?

  if File.directory?(@rackup)
    @rackup = File.join(@rackup, 'config.ru')
  end

  if !File.exist?(@rackup)
    abort "The Rackup file #{@rackup} does not exist"
  end

  stop   = Ramaze::Bin::Runner::Commands[:stop].new
  start  = Ramaze::Bin::Runner::Commands[:start].new
  params = [@rackup]

  unless @pid.nil?
    params.push("-P #{@pid}")
  end

  stop.run([@pid])
  start.run(params)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.