Module: Chouette::CommandLineSupport
- Included in:
- Command, Exporter, FileValidator, Loader
- Defined in:
- app/models/chouette/command_line_support.rb
Defined Under Namespace
Classes: ExecutionError
Instance Method Summary collapse
- #available_loggers ⇒ Object
- #execute!(command) ⇒ Object
- #logger ⇒ Object
- #max_output_length ⇒ Object
Instance Method Details
#available_loggers ⇒ Object
5 6 7 8 9 10 11 |
# File 'app/models/chouette/command_line_support.rb', line 5 def available_loggers [].tap do |logger| logger << Chouette::ActiveRecord.logger logger << Rails.logger if defined?(Rails) logger << Logger.new($stdout) end.compact end |
#execute!(command) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/models/chouette/command_line_support.rb', line 21 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 |
#logger ⇒ Object
13 14 15 |
# File 'app/models/chouette/command_line_support.rb', line 13 def logger @logger ||= available_loggers.first end |
#max_output_length ⇒ Object
17 18 19 |
# File 'app/models/chouette/command_line_support.rb', line 17 def max_output_length 2000 end |