class Bricolage::JobNetRunner::Options

Attributes

environment[R]
global_variables[R]
jobnet_files[R]

Public Class Methods

new(app) click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 211
def initialize(app)
  @app = app
  @environment = nil
  @global_variables = Variables.new
  @jobnet_files = nil

  @dump_options = false
  @check_only = false
  @list_jobs = false
  @clear_queue = false

  init_options
end

Public Instance Methods

check_only?() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 326
def check_only?
  @check_only
end
clear_queue?() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 355
def clear_queue?
  @clear_queue
end
define_options(parser) click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 253
      def define_options(parser)
        parser.banner = <<-EndBanner
Synopsis:
  #{@app.program_name} [options] JOB_NET_FILE
Options:
        EndBanner
        parser.on('-e', '--environment=NAME', "Sets execution environment. [default: #{Context::DEFAULT_ENV}]") {|env|
          @environment = env
        }

        define_common_options

        parser.on('--local-state-dir=PATH', 'Stores local state in this path.') {|path|
          @opts_cmdline['local-state-dir'] = OptionValue.new('--local-state-dir option', path)
        }
        parser.on('-Q', '--enable-queue', 'Enables job queue.') {
          @opts_cmdline['enable-queue'] = OptionValue.new('--enable-queue option', true)
        }
        parser.on('--disable-queue', 'Disables job queue.') {
          @opts_cmdline['enable-queue'] = OptionValue.new('--disable-queue option', false)
        }
        parser.on('--clear-queue', 'Clears job queue and quit.') {
          @clear_queue = true
        }
        parser.on('--queue-path=PATH', 'Enables job queue with this path.') {|path|
          @opts_cmdline['queue-path'] = OptionValue.new('--queue-path option', path)
        }
        parser.on('-c', '--check-only', 'Checks job parameters and quit without executing.') {
          @check_only = true
        }
        parser.on('-l', '--list-jobs', 'Lists target jobs without executing.') {
          @list_jobs = true
        }
        parser.on('-v', '--variable=NAME=VALUE', 'Defines global variable.') {|name_value|
          name, value = name_value.split('=', 2)
          @global_variables[name] = value
        }
        parser.on('--dump-options', 'Shows option parsing result and quit.') {
          @dump_options = true
        }
        parser.on('--help', 'Shows this message and quit.') {
          @app.puts parser.help
          @app.exit 0
        }
        parser.on('--version', 'Shows program version and quit.') {
          @app.puts "#{APPLICATION_NAME} version #{VERSION}"
          @app.exit 0
        }
      end
dump_options?() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 322
def dump_options?
  @dump_options
end
enable_queue?() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 341
def enable_queue?
  opt = @opts['enable-queue']
  opt.value
end
help() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 249
def help
  @parser.help
end
list_jobs?() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 330
def list_jobs?
  @list_jobs
end
local_state_dir() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 334
def local_state_dir
  @local_state_dir ||= begin
    opt = @opts['local-state-dir']
    Pathname(opt.value)
  end
end
on(*args, &block) click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 303
def on(*args, &block)
  @parser.on(*args, &block)
end
option_pairs() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 359
def option_pairs
  common_options.merge({
    'environment' => OptionValue.new(nil, @environment)
  })
end
parse!(argv) click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 307
def parse!(argv)
  @parser.parse!(argv)
  raise OptionError, "missing jobnet file" if argv.empty?
  @jobnet_files = argv.map {|path| Pathname(path) }
  build_common_options!
rescue OptionParser::ParseError => ex
  raise OptionError, ex.message
end
queue_path() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 346
def queue_path
  opt = @opts['queue-path']
  if opt.value
    Pathname(opt.value)
  else
    nil
  end
end

Private Instance Methods

opts_default() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 225
def opts_default
  super.merge({
    'local-state-dir' => OptionValue.new('default value', '/tmp/bricolage'),
    'enable-queue' => OptionValue.new('default value', false),
    'queue-path' => OptionValue.new('default value', nil)
  })
end
opts_env() click to toggle source
# File lib/bricolage/jobnetrunner.rb, line 234
def opts_env
  env = super
  if ENV['BRICOLAGE_ENABLE_QUEUE']
    env['enable-queue'] = OptionValue.new('env BRICOLAGE_ENABLE_QUEUE', true)
  end
  if ENV['BRICOLAGE_DISABLE_QUEUE']
    env['enable-queue'] = OptionValue.new('env BRICOLAGE_DISABLE_QUEUE', false)
  end
  if path = ENV['BRICOLAGE_QUEUE_PATH']
    env['queue-path'] = OptionValue.new('env BRICOLAGE_QUEUE_PATH', path)
  end
  env
end