Skip to content
Snippets Groups Projects
Commit 0befef71 authored by Holger Just's avatar Holger Just
Browse files

Add rake task to set magic comments for source encoding

parent 0ed5cb3f
Branches
Tags
No related merge requests found
#-- encoding: UTF-8
#-- copyright
# ChiliProject is a project management system.
#
......@@ -29,4 +30,34 @@ namespace :code do
end
end
end
desc "Set the magic encoding comment everywhere to UTF-8"
task :source_encoding do
shebang = '\s*#!.*?(\n|\r\n)'
magic_regex = /\A(#{shebang})?\s*(#\W*(en)?coding:.*?$)/mi
magic_comment = '#-- encoding: UTF-8'
(Dir['script/**/**'] + Dir['**/**{.rb,.rake}']).each do |file_name|
next unless File.file?(file_name)
# We don't skip code here, as we need ALL code files to have UTF-8
# source encoding
file_content = File.read(file_name)
if file_content =~ magic_regex
file_content.gsub!(magic_regex, "\\1#{magic_comment}")
else
if file_content.start_with?("#!")
# We have a shebang. Encoding comment is to put on the second line
file_content.sub!(/(\n|\r\n)/, "\\1#{magic_comment}\\1")
else
file_content = magic_comment + "\n" + file_content
end
end
File.open(file_name, "w") do |file|
file.write file_content
end
end
end
end
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment