Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- def check_ruby_file(adds)
- adds.select{|add|
- /;\z/.match? add
- }.any? ? 'm9' : 'ok'
- end
- def check_adds(filename, adds)
- if /\.rb\z/.match? filename
- check_ruby_file(adds)
- else
- 'ok'
- end
- end
- changed_files = `git diff --cached --name-only HEAD`
- exit_code = changed_files.split("\n").
- map{|filename| [filename, `git diff --cached -U0 HEAD -- "#{filename}"`] }.
- map{|(filename, diffs)| [filename, diffs.split(/\n/).select{|diff| /\A\+[^\+]/.match?(diff)} ] }.
- reject{|(_, adds)| adds.empty? }.
- map{|(filename, adds)| [filename, adds, check_adds(filename, adds)] }.
- reject{|(_, _, result)| result == "ok" }.
- tap{|elemeht| elemeht.each{|(filename, adds, result)| puts "Your commit have invalid adds. #{filename}"; puts "#{adds.join("\n")}" } }
- .any? ? 1 : 0
- exit exit_code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement