summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2018-06-19 19:13:11 +0200
committerBob Van Landuyt <bob@vanlanduyt.co>2018-06-20 14:50:21 +0200
commit5e6ec7eda9adb8a25b61ff03c85dd08e52c90abb (patch)
tree083cedfe803de20f6e8181458741479029b6db95
parentc815abbdc06fd37463b1383160a2aa1812729f4d (diff)
downloadgitlab-ce-bvl-errors-in-static-analysis.tar.gz
More verbose errors in static-analysisbvl-errors-in-static-analysis
This makes the output in static analysis a bit more verbose.
-rw-r--r--lib/tasks/gettext.rake21
-rw-r--r--lib/tasks/lint.rake22
2 files changed, 30 insertions, 13 deletions
diff --git a/lib/tasks/gettext.rake b/lib/tasks/gettext.rake
index d52c419d66b..bd8f02c0595 100644
--- a/lib/tasks/gettext.rake
+++ b/lib/tasks/gettext.rake
@@ -53,25 +53,34 @@ namespace :gettext do
task :updated_check do
# Removing all pre-translated files speeds up `gettext:find` as the
# files don't need to be merged.
- `rm locale/*/gitlab.po`
+ # Having `LC_MESSAGES/gitlab.mo files present also confuses the output.
+ FileUtils.rm Dir['locale/**/gitlab.*']
+
+ # Make sure we start out with a clean pot.file
+ `git checkout -- locale/gitlab.pot`
# `gettext:find` writes touches to temp files to `stderr` which would cause
- # `static-analysis` to report failures. We can ignore these
- silence_stream(STDERR) { Rake::Task['gettext:find'].invoke }
+ # `static-analysis` to report failures. We can ignore these.
+ silence_stream($stderr) do
+ Rake::Task['gettext:find'].invoke
+ end
- changed_files = `git diff --name-only`.lines.map(&:strip)
+ pot_diff = `git diff -- locale/gitlab.pot`.strip
# reset the locale folder for potential next tasks
`git checkout -- locale`
- if changed_files.include?('locale/gitlab.pot')
+ if pot_diff.present?
raise <<~MSG
Newly translated strings found, please add them to `gitlab.pot` by running:
- bundle exec rake gettext:find; git checkout -- locale/*/gitlab.po;
+ rm locale/*/gitlab.po; bin/rake gettext:find; git checkout -- locale/*/gitlab.po
Then commit and push the resulting changes to `locale/gitlab.pot`.
+ The diff was:
+
+ #{pot_diff}
MSG
end
end
diff --git a/lib/tasks/lint.rake b/lib/tasks/lint.rake
index b5a9cddaacb..006fcdd31a4 100644
--- a/lib/tasks/lint.rake
+++ b/lib/tasks/lint.rake
@@ -17,13 +17,22 @@ unless Rails.env.production?
Rake::Task['eslint'].invoke
end
+ desc "GitLab | lint | Lint HAML files"
+ task :haml do
+ begin
+ Rake::Task['haml_lint'].invoke
+ rescue RuntimeError # The haml_lint tasks raise a RuntimeError
+ exit(1)
+ end
+ end
+
desc "GitLab | lint | Run several lint checks"
task :all do
status = 0
%w[
config_lint
- haml_lint
+ lint:haml
scss_lint
flay
gettext:lint
@@ -39,13 +48,12 @@ unless Rails.env.production?
$stderr.reopen(wr_err)
begin
- begin
- Rake::Task[task].invoke
- rescue RuntimeError # The haml_lint tasks raise a RuntimeError
- exit(1)
- end
+ Rake::Task[task].invoke
rescue SystemExit => ex
- msg = "*** Rake task #{task} failed with the following error(s):"
+ msg = "*** Rake task #{task} exited:"
+ raise ex
+ rescue => ex
+ msg = "*** Rake task #{task} raised #{ex.class}:"
raise ex
ensure
$stdout.reopen(stdout)