diff options
Diffstat (limited to 'lib/tasks/pngquant.rake')
-rw-r--r-- | lib/tasks/pngquant.rake | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/lib/tasks/pngquant.rake b/lib/tasks/pngquant.rake deleted file mode 100644 index 45c0288cadf..00000000000 --- a/lib/tasks/pngquant.rake +++ /dev/null @@ -1,55 +0,0 @@ -# frozen_string_literal: true - -return if Rails.env.production? - -require 'png_quantizator' -require 'parallel' -require_relative '../../tooling/lib/tooling/images' - -# The amount of variance (in bytes) allowed in -# file size when testing for compression size - -namespace :pngquant do - # Returns an array of all images eligible for compression - def doc_images - Dir.glob('doc/**/*.png', File::FNM_CASEFOLD) - end - - desc 'GitLab | Pngquant | Compress all documentation PNG images using pngquant' - task :compress do - files = doc_images - puts "Compressing #{files.size} PNG files in doc/**" - - Parallel.each(files) do |file| - was_uncompressed, savings = Tooling::Image.compress_image(file) - - if was_uncompressed - puts "#{file} was reduced by #{savings} bytes" - end - end - end - - desc 'GitLab | Pngquant | Checks that all documentation PNG images have been compressed with pngquant' - task :lint do - files = doc_images - puts "Checking #{files.size} PNG files in doc/**" - - uncompressed_files = Parallel.map(files) do |file| - is_uncompressed, _ = Tooling::Image.compress_image(file, true) - if is_uncompressed - puts "Uncompressed file detected: ".color(:red) + file - file - end - end.compact - - if uncompressed_files.empty? - puts "All documentation images are optimally compressed!".color(:green) - else - warn( - "The #{uncompressed_files.size} image(s) above have not been optimally compressed using pngquant.".color(:red), - 'Please run "bin/rake pngquant:compress" and commit the result.' - ) - abort - end - end -end |