class Macinbox::Collector

Public Class Methods

new(preserve_temp_dirs: false) click to toggle source
# File lib/macinbox/collector.rb, line 6
def initialize(preserve_temp_dirs: false)
  @temp_dirs = []
  @blocks = []
  @preserve_temp_dirs = preserve_temp_dirs
end

Public Instance Methods

add_temp_dir(temp_dir) click to toggle source
# File lib/macinbox/collector.rb, line 11
def add_temp_dir(temp_dir)
  @temp_dirs << temp_dir
end
cleanup!() click to toggle source
# File lib/macinbox/collector.rb, line 28
def cleanup!
  @blocks.reverse.each do |block|
    block.call
  end
  remove_temp_dirs
  @blocks = []
  @temp_dirs = []
end
on_cleanup(&block) click to toggle source
# File lib/macinbox/collector.rb, line 25
def on_cleanup(&block)
  @blocks << block
end
remove_temp_dirs() click to toggle source
# File lib/macinbox/collector.rb, line 14
def remove_temp_dirs
  if @preserve_temp_dirs
    temp_dir_args = @temp_dirs.reverse.map { |o| o.shellescape }.join(" \\\n")
    Logger.error "WARNING: Temporary files were not removed. Run this command to remove them:"
    Logger.error "sudo rm -rf #{temp_dir_args}"
  else
    @temp_dirs.reverse_each do |temp_dir|
      FileUtils.remove_dir(temp_dir)
    end
  end
end