Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. require "set"
  2.  
  3. lfs_file_output = `git lfs ls-files`
  4. lfs_files = lfs_file_output.
  5. chomp. # strip ending \n
  6. split("\n"). # array of lines
  7. map { |line| line.split.last } # filename is at the end of the line
  8.  
  9. current_commit = `git rev-parse HEAD`.chomp
  10. git_output = `git ls-tree #{current_commit} -r`
  11. git_files = git_output.
  12. chomp. # strip ending \n
  13. split("\n"). # array of lines
  14. map { |line| line.split.last } # filename is at the end of the line
  15.  
  16. extensions = Set.new(%w(
  17. .dll
  18. .exe
  19. .lib
  20. .pdb
  21. .dylib
  22. .rhp
  23. .cubin
  24. .chm
  25. .ai
  26. .psd
  27. .doxdb
  28. .msm
  29. .aqt
  30. .tlb
  31. .zip
  32. .a
  33. ))
  34.  
  35. # filter out files not matching extensions above
  36. git_files = git_files.select do |path|
  37. extensions.include?(File.extname(path).downcase)
  38. end
  39.  
  40. lfs_set = Set.new(lfs_files)
  41. missing = git_files.reject do |path|
  42. lfs_set.include?(path)
  43. end
  44.  
  45. if ENV["DEBUG"]
  46. puts "%d LFS file(s):" % lfs_files.size
  47. puts lfs_files
  48. puts
  49.  
  50. puts "%d Git file(s):" % git_files.size
  51. puts git_files
  52. puts
  53. end
  54.  
  55. if missing.empty?
  56. puts "All files using Git LFS"
  57. else
  58. puts "%d file(s) not using Git LFS:" % missing.size
  59. puts missing
  60. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement