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