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
Calls superclass method
Bricolage::CommonApplicationOptions#opts_default
# 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
Calls superclass method
Bricolage::CommonApplicationOptions#opts_env
# 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