Class: Ramaze::Bin::Restart

Inherits:
Object show all
Defined in:
lib/ramaze/bin/restart.rb

Overview

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:

Since:

Constant Summary

Description =

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

Since:

  • 21-07-2011

'Restarts an application'
<<-TXT.strip
Restarts an active Ramaze application.

Usage:
  ramaze restart [RACKUP] [OPTIONS]

Example:
  ramaze restart config.ru -P ramaze.pid
TXT

Instance Method Summary (collapse)

Constructor Details

- (Restart) initialize

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

Author:

  • Yorick Peterse

Since:

  • 21-07-2011



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# 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

Instance Method Details

- (Object) run(argv = [])

Runs the command based on the specified command line arguments.

Parameters:

  • argv (Array) (defaults to: [])

    An array containing all command line arguments.

Author:

  • Yorick Peterse

Since:

  • 21-07-2011



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# 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