1
0

check-contrib.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/bin/bash
  2. missing-authors() {
  3. for email in $(git log --format=%ae HEAD | sort | uniq) ; do
  4. grep -q "$email" AUTHORS || echo $email
  5. done
  6. }
  7. no-docs-typos() {
  8. # Commits that are known to not change code
  9. grep -v 63bd0136fb40a91efaa279cb4b4159d82e8e6904 |\
  10. grep -v 4e2feb6fbc791bb8a2daf0ab8efb10775d66343e |\
  11. grep -v f2459ef3319b2f060dbcdacd0c35a1788a94b8bd |\
  12. grep -v b61f418bf2d1f7d5a9d7088a20a2a448e5e66801 |\
  13. grep -v f0621207e3953711f9ab86d99724f1d0faac45b1 |\
  14. grep -v f1120d7aa936c0658429edef0037792520b46334 |\
  15. grep -v a9339d0627fff439879d157c75077f02c9fac61b |\
  16. grep -v 254c63763a3ad42fd82259f1767db526cff94a14 |\
  17. grep -v 4b76ec40c07078beaa2c5e250ed7d9bd6276a718 |\
  18. grep -v ffc39dfbcb34eacc3ea12327a02b6e7741a2c207 |\
  19. grep -v 32a76901a91ff0f663db6f0830e0aedec946e4d0 |\
  20. grep -v af3288043a49bcc28f8ae3060852a09de552fe5f |\
  21. grep -v 3626003f680bad3e63677982576d3a05421e88e9
  22. }
  23. print-missing-authors() {
  24. for email in $(missing-authors) ; do
  25. git log --author="$email" --format="%H %ae %s" | no-docs-typos
  26. done
  27. }
  28. print-missing-copyright() {
  29. find . -name \*.go | xargs egrep -L 'Copyright|automatically generated' | grep -v Godeps | grep -v internal/auto/
  30. }
  31. authors=$(print-missing-authors)
  32. if [[ ! -z $authors ]] ; then
  33. echo '***'
  34. echo Author emails not in AUTHORS:
  35. echo $authors
  36. echo '***'
  37. exit 1
  38. fi
  39. copy=$(print-missing-copyright)
  40. if [[ ! -z $copy ]] ; then
  41. echo ***
  42. echo Files missing copyright notice:
  43. echo $copy
  44. echo ***
  45. exit 1
  46. fi