Sha256: 17af72d270d5d76b93c3c5df9f000bc1788860aa6871014c579263977760d75c

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

require 'logger'
require 'socket'

module Yacli
  class Base
    def init_logger(log_path = nil)
      output_file = log_path.nil? ? STDOUT : log_path
      logger = Logger.new(output_file)
      logger.level = (!ENV['DEBUG'].nil?) ? Logger::DEBUG : Logger::INFO
      logger.debug "logger.level: #{logger.level}"
      logger
    end
    
    def error_exit(msg, exit_code = 1)
      @log.error msg
      raise ExecutionError
    end
    
    def pass_cli(cmd, valid_out_pattern = nil)
      cmd += ' 2>&1'
      @log.debug "running cmd: #{cmd}"
      cmd_out = `#{cmd}`
      success_exec = $?.success?
      @log.info "cmd_out: #{cmd_out}"
      @log.debug "success_exec: #{success_exec}"
      
      valid_content = valid_out_pattern.nil? ? true : !cmd_out.match(/#{valid_out_pattern}/).nil?
      @log.debug "valid_content: #{valid_content}"
      
      raise InvalidExitCodeError.new(cmd_out) if !success_exec
      raise InvalidContentError.new(cmd_out) if !valid_content
      { :success => success_exec, :output => cmd_out }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
yacli-0.1.8 lib/yacli/base.rb