class Mixlib::ShellOut

def parse_options(opts)

def parse_options(opts)
  opts.each do |option, setting|
    case option.to_s
    when 'cwd'
      self.cwd = setting
    when 'domain'
      self.domain = setting
    when 'password'
      self.password = setting
    when 'user'
      self.user = setting
      self.with_logon = setting
    when 'group'
      self.group = setting
    when 'umask'
      self.umask = setting
    when 'timeout'
      self.timeout = setting
    when 'returns'
      self.valid_exit_codes = Array(setting)
    when 'live_stream'
      self.live_stdout = self.live_stderr = setting
    when 'live_stdout'
      self.live_stdout = setting
    when 'live_stderr'
      self.live_stderr = setting
    when 'input'
      self.input = setting
    when 'logger'
      self.logger = setting
    when 'log_level'
      self.log_level = setting
    when 'log_tag'
      self.log_tag = setting
    when 'environment', 'env'
      self.environment = setting || {}
    else
      raise InvalidCommandOption, "option '#{option.inspect}' is not a valid option for #{self.class.name}"
    end
  end
  validate_options(opts)
end