class Overcommit::Hook::PreCommit::GolangciLint

Runs `golangci-lint run` against any modified packages

@see github.com/golangci/golangci-lint

Public Instance Methods

run() click to toggle source
# File lib/overcommit/hook/pre_commit/golangci_lint.rb, line 8
def run
  packages = applicable_files.map { |f| File.dirname(f) }.uniq
  result = execute(command, args: packages)
  return :pass if result.success?
  return [:fail, result.stderr] unless result.stderr.empty?

  extract_messages(
    result.stdout.split("\n"),
    /^(?<file>(?:\w:)?[^:]+):(?<line>\d+)/,
    nil
  )
end