Harbor Documentation

Harbor::Script::Runner

Constants

  • COMMANDS

Public Class Methods

new(argv, services, script)

       # File lib/harbor/script.rb, line 102
102:       def initialize(argv, services, script)
103:         raise ArgumentError.new("services must be a Harbor::Container but was #{services.inspect}") unless services.is_a?(Harbor::Container)
104: 
105:         @argv = argv
106:         @script = script
107:         @script_name = @script.to_s
108:         @services = services
109: 
110:         @services.register(@script_name, @script) unless services.registered?(@script_name)
111: 
112:         parse!
113:       end

Public Instance Methods

parse!()

       # File lib/harbor/script.rb, line 115
115:       def parse!
116:         @options = {
117:           :daemonize => false
118:         }
119: 
120:         parser = OptionParser.new do |opts|
121:           opts.on("-d", "--daemonize", "Daemonize process") { @options[:daemonize] = true }
122:         end
123: 
124:         parser.parse!(@argv)
125:         @command = @argv.shift
126:       end

restart()

       # File lib/harbor/script.rb, line 145
145:       def restart
146:         Harbor::Script.restart(@script.pid_file)
147:       end

run!()

       # File lib/harbor/script.rb, line 128
128:       def run!
129:         unless COMMANDS.include?(@command)
130:           puts "#{@command.inspect} is not a valid command. Commands are: #{COMMANDS.join(", ")}"
131:           exit 1
132:         end
133: 
134:         send(@command)
135:       end

start()

       # File lib/harbor/script.rb, line 137
137:       def start
138:         script = @services.get(@script_name, :options => @options, :services => @services)
139: 
140:         script.daemonize if @options[:daemonize]
141: 
142:         @argv.empty? ? script.run! : script.run!(*@argv)
143:       end

stop()

       # File lib/harbor/script.rb, line 149
149:       def stop
150:         Harbor::Script.kill(@script.pid_file)
151:       end