@@ -8,18 +8,16 @@ def run
8
8
9
9
offending_files . map do |file_name |
10
10
file = File . open ( file_name )
11
- file . each_line do |line |
12
- # remove configured line-ending
13
- line . gsub! ( /#{ config [ 'eol' ] } / , '' )
14
-
15
- # detect any left over line-ending characters
16
- next unless line . end_with? ( "\n " , "\r " )
17
-
11
+ begin
12
+ messages += check_file ( file , file_name )
13
+ rescue ArgumentError => ex
14
+ # File is likely a binary file which this check should ignore, but
15
+ # print a warning just in case
18
16
messages << Overcommit ::Hook ::Message . new (
19
- :error ,
17
+ :warning ,
20
18
file_name ,
21
19
file . lineno ,
22
- "#{ file_name } :#{ file . lineno } :#{ line . inspect } "
20
+ "#{ file_name } :#{ file . lineno } :#{ ex . message } "
23
21
)
24
22
end
25
23
end
@@ -29,6 +27,27 @@ def run
29
27
30
28
private
31
29
30
+ def check_file ( file , file_name )
31
+ messages_for_file = [ ]
32
+
33
+ file . each_line do |line |
34
+ # Remove configured line-ending
35
+ line . gsub! ( /#{ config [ 'eol' ] } / , '' )
36
+
37
+ # Detect any left over line-ending characters
38
+ next unless line . end_with? ( "\n " , "\r " )
39
+
40
+ messages_for_file << Overcommit ::Hook ::Message . new (
41
+ :error ,
42
+ file_name ,
43
+ file . lineno ,
44
+ "#{ file_name } :#{ file . lineno } :#{ line . inspect } "
45
+ )
46
+ end
47
+
48
+ messages_for_file
49
+ end
50
+
32
51
def offending_files
33
52
result = execute ( %w[ git ls-files --eol -z -- ] , args : applicable_files )
34
53
raise 'Unable to access git tree' unless result . success?
0 commit comments