2018-07-22 14:28:17 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
FILE_EXTENSION = ".rb"
|
|
|
|
MAGIC_COMMENT = "# frozen_string_literal: true"
|
|
|
|
|
|
|
|
def get_files_with_no_magic_comment(files)
|
|
|
|
files.select do |file|
|
|
|
|
file.end_with?(FILE_EXTENSION) &&
|
2018-07-25 17:32:44 -04:00
|
|
|
!File.open(file, &:gets)&.start_with?(MAGIC_COMMENT)
|
2018-07-22 14:28:17 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-07-25 17:32:44 -04:00
|
|
|
files_to_fix = get_files_with_no_magic_comment(git.added_files)
|
2018-07-22 14:28:17 -04:00
|
|
|
|
|
|
|
if files_to_fix.any?
|
|
|
|
warn 'This merge request adds files that do not enforce frozen string literal. ' \
|
2019-09-18 10:02:45 -04:00
|
|
|
'See https://gitlab.com/gitlab-org/gitlab-foss/issues/47424 for more information.'
|
2018-07-22 14:28:17 -04:00
|
|
|
|
2019-09-06 07:21:53 -04:00
|
|
|
if GitlabDanger.new(helper.gitlab_helper).ci?
|
|
|
|
markdown(<<~MARKDOWN)
|
|
|
|
## Enable Frozen String Literal
|
2018-07-22 14:28:17 -04:00
|
|
|
|
2019-09-06 07:21:53 -04:00
|
|
|
The following files should have `#{MAGIC_COMMENT}` on the first line:
|
2018-07-22 14:28:17 -04:00
|
|
|
|
2019-09-06 07:21:53 -04:00
|
|
|
* #{files_to_fix.map { |path| "`#{path}`" }.join("\n* ")}
|
|
|
|
MARKDOWN
|
|
|
|
end
|
2018-07-22 14:28:17 -04:00
|
|
|
end
|