class Middleman::Builder

def export_file!(output_file, source)

def export_file!(output_file, source)
  source = write_tempfile(output_file, source.to_s) if source.is_a? String
  method, source_path = if source.is_a? Tempfile
    [FileUtils.method(:mv), source.path]
  else
    [FileUtils.method(:cp), source.to_s]
  end
  mode = which_mode(output_file, source_path)
  if mode == :created || mode == :updated
    FileUtils.mkdir_p(output_file.dirname)
    method.call(source_path, output_file.to_s)
  end
  source.unlink if source.is_a? Tempfile
  trigger(mode, output_file)
end