Sha256: a3b69fc431333cb57a32c2fede54bc31838b7e20236f1155cdb3d34f9171caba

Contents?: true

Size: 755 Bytes

Versions: 23

Compression:

Stored size: 755 Bytes

Contents

module Chouette::CommandLineSupport

  class ExecutionError < StandardError; end

  def available_loggers
    [].tap do |logger|
      logger << Chouette::ActiveRecord.logger  
      logger << Rails.logger if defined?(Rails)
      logger << Logger.new($stdout)
    end.compact
  end

  def logger
    @logger ||= available_loggers.first
  end

  def max_output_length
    2000
  end

  def execute!(command)
    logger.debug "execute '#{command}'"

    output = `#{command} 2>&1`
    output = "[...] #{output[-max_output_length,max_output_length]}" if output.length > max_output_length
    logger.info output unless output.empty?

    if $? != 0
      raise ExecutionError.new("Command failed: #{command} (error code #{$?})")
    end

    true
  end

end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
ninoxe-1.2.3 app/models/chouette/command_line_support.rb
ninoxe-1.2.2 app/models/chouette/command_line_support.rb
ninoxe-1.2.1 app/models/chouette/command_line_support.rb
ninoxe-1.2.0 app/models/chouette/command_line_support.rb
ninoxe-1.1.5 app/models/chouette/command_line_support.rb
ninoxe-1.1.4 app/models/chouette/command_line_support.rb
ninoxe-1.1.3 app/models/chouette/command_line_support.rb
ninoxe-1.1.2 app/models/chouette/command_line_support.rb
ninoxe-1.1.1 app/models/chouette/command_line_support.rb
ninoxe-1.1.0 app/models/chouette/command_line_support.rb
ninoxe-1.0.3 app/models/chouette/command_line_support.rb
ninoxe-1.0.2 app/models/chouette/command_line_support.rb
ninoxe-1.0.1 app/models/chouette/command_line_support.rb
ninoxe-1.0.0 app/models/chouette/command_line_support.rb
ninoxe-0.1.6 app/models/chouette/command_line_support.rb
ninoxe-0.1.5 app/models/chouette/command_line_support.rb
ninoxe-0.1.4 app/models/chouette/command_line_support.rb
ninoxe-0.1.3 app/models/chouette/command_line_support.rb
ninoxe-0.1.2 app/models/chouette/command_line_support.rb
ninoxe-0.1.1 app/models/chouette/command_line_support.rb