Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. def check_ruby_file(adds)
  4. adds.select{|add|
  5. /;\z/.match? add
  6. }.any? ? 'm9' : 'ok'
  7. end
  8.  
  9. def check_adds(filename, adds)
  10. if /\.rb\z/.match? filename
  11. check_ruby_file(adds)
  12. else
  13. 'ok'
  14. end
  15. end
  16.  
  17. changed_files = `git diff --cached --name-only HEAD`
  18. exit_code = changed_files.split("\n").
  19. map{|filename| [filename, `git diff --cached -U0 HEAD -- "#{filename}"`] }.
  20. map{|(filename, diffs)| [filename, diffs.split(/\n/).select{|diff| /\A\+[^\+]/.match?(diff)} ] }.
  21. reject{|(_, adds)| adds.empty? }.
  22. map{|(filename, adds)| [filename, adds, check_adds(filename, adds)] }.
  23. reject{|(_, _, result)| result == "ok" }.
  24. tap{|elemeht| elemeht.each{|(filename, adds, result)| puts "Your commit have invalid adds. #{filename}"; puts "#{adds.join("\n")}" } }
  25. .any? ? 1 : 0
  26.  
  27. exit exit_code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement