Sha256: 9e1f2b4cfb48a9b3b4698561618492b08f63d7c18c2552e8c9b4a5b8bc463a93
Contents?: true
Size: 779 Bytes
Versions: 19
Compression:
Stored size: 779 Bytes
Contents
# frozen_string_literal: true module Overcommit::Hook::PreCommit # Runs `hlint` against any modified Haskell files. # # @see https://github.com/ndmitchell/hlint class Hlint < Base MESSAGE_REGEX = / ^(?<file>(?:\w:)?[^:]+) :(?<line>\d+) :\d+ :\s*(?<type>\w+) /x MESSAGE_TYPE_CATEGORIZER = lambda do |type| type.include?('W') ? :warning : :error end def run result = execute(command, args: applicable_files) return :pass if result.success? raw_messages = result.stdout.split("\n").grep(MESSAGE_REGEX) # example message: # path/to/file.hs:1:0: Error: message extract_messages( raw_messages, MESSAGE_REGEX, MESSAGE_TYPE_CATEGORIZER ) end end end
Version data entries
19 entries across 19 versions & 2 rubygems