Module: Support::Rake::TaskWithLogger

Defined in:
lib/support/rake/task_with_logger.rb

Instance Method Summary collapse

Instance Method Details

#executeObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/support/rake/task_with_logger.rb', line 6

def execute(...)
  # gdk-config.mk is included in the Makefile, so it must output
  # nothing, ever.
  return super if name == "gdk-config.mk"
  return super unless TaskWithSpinner.spinner_manager

  begin
    logger = TaskLogger.new(self)
    TaskLogger.set_current!(logger)
    super
    logger.cleanup!
  rescue StandardError => e
    if logger
      warn e.message
      warn e.backtrace
      raise e, "#{name} failed!\nSee #{logger.file_path} for the task output.\n"
    end

    raise
  ensure
    logger&.cleanup!(delete: false)
    TaskLogger.set_current!(nil)
  end
end