class Bricolage::CommonApplicationOptions

Constants

OptionValue

Attributes

parser[R]

Public Instance Methods

common_options() click to toggle source

Accessors

# File lib/bricolage/application.rb, line 256
def common_options
  @opts
end
log_path_format() click to toggle source
# File lib/bricolage/application.rb, line 260
def log_path_format
  if opt = @opts['log-dir'] and opt.value
    LogFilePath.new("#{opt.value}/%{std}.log")
  elsif opt = @opts['log-path'] and opt.value
    LogFilePath.new(opt.value)
  else
    nil
  end
end
log_s3_ds() click to toggle source
# File lib/bricolage/application.rb, line 270
def log_s3_ds
  s3_log_spec.first
end
log_s3_key_format() click to toggle source
# File lib/bricolage/application.rb, line 274
def log_s3_key_format
  s3_log_spec.last
end
merge_saved_options(vars) click to toggle source
# File lib/bricolage/application.rb, line 236
def merge_saved_options(vars)
  saved = {}
  @opts_default.keys.each do |key|
    if val = vars.get_force(key)
      saved[key] = OptionValue.new("bricolage.yml:#{key}", val)
    end
  end
  @opts_saved = saved
  build_common_options!
end
s3_log_spec() click to toggle source
# File lib/bricolage/application.rb, line 278
def s3_log_spec
  @s3_log_spec ||=
    if opt = @opts['s3-log'] and spec = opt.value
      ds, k = spec.split(':', 2)
      k = k.to_s.strip
      key = k.empty? ? nil : k
      [ds, LogFilePath.new(key || '%{std}.log')]
    else
      [nil, nil]
    end
end

Private Instance Methods

build_common_options!() click to toggle source
# File lib/bricolage/application.rb, line 247
def build_common_options!
  @opts = [@opts_default, @opts_saved, @opts_env, @opts_cmdline].inject({}) {|h, opts| h.update(opts); h }
end
define_common_options() click to toggle source

abstract :define_options

# File lib/bricolage/application.rb, line 223
def define_common_options
  @parser.on('-L', '--log-dir=PATH', 'Log file prefix.') {|path|
    @opts_cmdline['log-dir'] = OptionValue.new('--log-dir option', path)
  }
  @parser.on('--log-path=PATH', 'Log file path template.') {|path|
    @opts_cmdline['log-path'] = OptionValue.new('--log-path option', path)
  }
  @parser.on('--s3-log=DS_KEY', 'S3 log file. (format: "DS:KEY")') {|spec|
    @opts_cmdline['s3-log'] = OptionValue.new('--s3-log option', spec)
  }
end
init_options() click to toggle source
# File lib/bricolage/application.rb, line 187
def init_options
  @opts = nil   # valid only after #parse!
  @opts_default = opts_default()
  @opts_saved = {}
  @opts_env = opts_env()
  @opts_cmdline = {}
  @parser = OptionParser.new
  define_options @parser
end
opts_default() click to toggle source
# File lib/bricolage/application.rb, line 200
def opts_default
  {
    'log-path' => OptionValue.new('default value', nil),
    'log-dir' => OptionValue.new('default value', nil),
    's3-log' => OptionValue.new('default value', nil)
  }
end
opts_env() click to toggle source
# File lib/bricolage/application.rb, line 209
def opts_env
  env = {}
  if path = ENV['BRICOLAGE_LOG_PATH']
    env['log-path'] = OptionValue.new('env BRICOLAGE_LOG_PATH', path)
  end
  if path = ENV['BRICOLAGE_LOG_DIR']
    env['log-dir'] = OptionValue.new('env BRICOLAGE_LOG_DIR', path)
  end
  env
end