source_code_filter.rb 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/usr/bin/ruby
  2. # Copyright (C) 2012-2013 Zammad Foundation, http://zammad-foundation.org/
  3. require 'tempfile'
  4. require 'code_beauty_ruby.rb'
  5. def checkForHeader(fileName)
  6. foundHeader = false;
  7. foundSheBang = false;
  8. isCoffee = false;
  9. header = "# Copyright (C) 2012-2013 Zammad Foundation, http://zammad-foundation.org/\n\n"
  10. if File.extname(fileName) == '.coffee'
  11. isCoffee = true
  12. end
  13. file = File.open(fileName)
  14. t_file = Tempfile.new('Temp')
  15. allLines = IO.readlines(fileName)
  16. if allLines[0] =~ /(^# Copyright)/ || allLines[1] =~ /(^# Copyright)/
  17. foundHeader = true
  18. elsif allLines[1] =~/^=begin/ #assume external script
  19. foundHeader = true
  20. end
  21. if allLines[0] =~ /(^#!\/)/
  22. foundSheBang = true
  23. end
  24. file.each do |line|
  25. if file.lineno == 1 && foundSheBang && foundHeader
  26. t_file.puts line
  27. elsif file.lineno == 1 && !foundSheBang && !foundHeader
  28. t_file.puts header
  29. t_file.puts line
  30. elsif file.lineno == 1 && foundSheBang && !foundHeader
  31. t_file.puts line
  32. t_file.puts header
  33. else
  34. t_file.puts line.rstrip
  35. end
  36. end
  37. t_file.rewind
  38. t_file.close
  39. FileUtils.cp(t_file.path, fileName)
  40. t_file.unlink
  41. if !isCoffee
  42. t_file = RBeautify.beautify_file(fileName)
  43. end
  44. end
  45. #folder array
  46. folder = ['app/assets/javascripts/app','app/controllers/', 'app/models/', 'app/helpers/', 'app/mailers/' ]
  47. folder.each do |folder|
  48. puts 'Working on folder' + folder.to_s
  49. rbfiles = File.join("../#{folder}**", "*.{rb,coffee}")
  50. d = Dir.glob(rbfiles)
  51. d.each {|fileName|
  52. puts "Working on #{fileName}"
  53. #check if file header is present
  54. checkForHeader(fileName)
  55. }
  56. end