class Pronto::TerraformFormat::OutputParser

Public Instance Methods

parse(file_path, output) click to toggle source
# File lib/pronto/terraform_format/output_parser.rb, line 8
def parse(file_path, output)
  begin
    # skip first line
    diff = UnifiedDiff.parse(output.lines[3..output.lines.length].join(''))
  rescue StandardError => e
    puts "pronto-terraform_format ERROR: failed to parse output. #{e}"
    return {}
  end

  result = {}
  diff.chunks.each do |chunk|
    file = file_path
    result[file] ||= []
    result[file] << {
      file: file,
      line: chunk.modified_range.min,
      message: 'Needs to run terraform fmt'
    }
  end
  result
end