Sha256: 2c2dbb6d7e3971a3b59936c1e845af828433aaea5b84b741d2b9211e051bad9b

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

#!/usr/bin/env ruby
require "ostruct"
require "optparse"
require "workforce"

config = Workforce::Config.instance
files_to_require = []

optparser = OptionParser.new do |opts|
  opts.banner = "Usage: #{$0} [options] path/to/worker.rb #{Workforce::Controller::ACTIONS.join("|")}"

  opts.separator ""
  opts.separator "Options:"

  opts.on("-c", "--config [CONFIG_PATH]", "Uses configurations in config_file") do |config_path|
    config.load_file(config_path)
  end
  
  opts.on("--pid-dir PID_DIR", "Store pids on directory PID_DIR", "Default: #{config.pid_dir}") do |pid_dir|
    config.pid_dir = pid_dir
  end
  
  opts.on("--log-dir LOG_DIR", "Store logs on directory LOG_DIR", "Default: #{config.log_dir}") do |log_dir|
    config.log_dir = log_dir
  end
  
  opts.on("--require FILE", "Require FILE before executing action") do |file_path|
    files_to_require << file_path
  end
end

optparser.parse!
worker_path, action = ARGV

unless worker_path && action
  puts optparser
  exit(1)
end

files_to_require.each { |path| require(path) }
require worker_path
worker_class = File.basename(worker_path, ".rb").camelcase
Workforce::Controller.instance.dispatch(worker_class, action)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
workforce-0.1.1 bin/workforce
workforce-0.1.0 bin/workforce