diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-11-22 20:10:12 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-11-22 20:12:04 +0100 |
commit | f0092d3bb2ebeff94835ceab6e0bead58d35a349 (patch) | |
tree | b1b81fc2dcf502d755a96b2ba82d6b2686d88ecf | |
parent | 581e9fefac8b4285cf68b4bcecaa8b0f3c2f98d3 (diff) | |
download | qtrepotools-f0092d3bb2ebeff94835ceab6e0bead58d35a349.tar.gz |
detect ELF (and PE) files as generated files by content
ELF exes typically have no extension, so they have no filename check.
(cherry picked from commit 1ca6a72aaa2b1f12ef5ec4b46a3976fffdd866c9)
-rwxr-xr-x | git-hooks/sanitize-commit | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/git-hooks/sanitize-commit b/git-hooks/sanitize-commit index 78f434d..cbaf213 100755 --- a/git-hooks/sanitize-commit +++ b/git-hooks/sanitize-commit @@ -211,6 +211,13 @@ sub formatSize($) } } +sub isExe($) +{ + my $sha = shift; + my $type = `git cat-file -p $sha | file -b -`; + return $type =~ /^(ELF|PE32) /; +} + my @style_fails = (); sub styleFail($) @@ -347,7 +354,7 @@ while (<DIFF>) { } if ($maybe_bin && /^Binary files /) { if ($new_file) { - if (!defined($cfg{generated}) && $file =~ /\.(obj|o|lib|a|dll|so|exe|exp|qm|pdb|idb|suo)$/i) { + if (!defined($cfg{generated}) && ($file =~ /\.(obj|o|lib|a|dll|so|exe|exp|qm|pdb|idb|suo)$/i || isExe($maybe_bin))) { &complain("Adding build artifact", "generated"); } } else { @@ -395,7 +402,7 @@ while (<DIFF>) { formatSize($old_size)." => ".formatSize($size).")", "size"); } } - $maybe_bin = 1; + $maybe_bin = $new_tree; next; } } |