assets rake task: detect the brotli version on the image as the usage changes
This commit is contained in:
parent
f3f051a344
commit
5584085943
|
@ -1,6 +1,7 @@
|
||||||
task 'assets:precompile:before' do
|
task 'assets:precompile:before' do
|
||||||
|
|
||||||
require 'uglifier'
|
require 'uglifier'
|
||||||
|
require 'open3'
|
||||||
|
|
||||||
unless %w{profile production}.include? Rails.env
|
unless %w{profile production}.include? Rails.env
|
||||||
raise "rake assets:precompile should only be run in RAILS_ENV=production, you are risking unminified assets"
|
raise "rake assets:precompile should only be run in RAILS_ENV=production, you are risking unminified assets"
|
||||||
|
@ -114,10 +115,26 @@ def gzip(path)
|
||||||
raise "gzip compression failed: exit code #{$?.exitstatus}" if $?.exitstatus != 0
|
raise "gzip compression failed: exit code #{$?.exitstatus}" if $?.exitstatus != 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# different brotli versions use different parameters
|
||||||
|
ver_out, ver_err, ver_status = Open3.capture3('brotli --version')
|
||||||
|
if !ver_status.success?
|
||||||
|
# old versions of brotli don't respond to --version
|
||||||
|
def brotli_command(path)
|
||||||
|
"brotli --quality 11 --input #{path} --output #{path}.br"
|
||||||
|
end
|
||||||
|
elsif ver_out >= "brotli 1.0.0"
|
||||||
|
def brotli_command(path)
|
||||||
|
"brotli --quality=11 #{path} --output=#{path}.br"
|
||||||
|
end
|
||||||
|
else
|
||||||
|
# not sure what to do here, not expecting this
|
||||||
|
raise "cannot determine brotli version"
|
||||||
|
end
|
||||||
|
|
||||||
def brotli(path)
|
def brotli(path)
|
||||||
if ENV['COMPRESS_BROTLI']&.to_i == 1
|
if ENV['COMPRESS_BROTLI']&.to_i == 1
|
||||||
STDERR.puts "brotli --quality 11 --input #{path} --output #{path}.br"
|
STDERR.puts brotli_command(path)
|
||||||
STDERR.puts `brotli --quality 11 --input #{path} --output #{path}.br`
|
STDERR.puts `#{brotli_command(path)}`
|
||||||
raise "brotli compression failed: exit code #{$?.exitstatus}" if $?.exitstatus != 0
|
raise "brotli compression failed: exit code #{$?.exitstatus}" if $?.exitstatus != 0
|
||||||
STDERR.puts `chmod +r #{path}.br`
|
STDERR.puts `chmod +r #{path}.br`
|
||||||
raise "chmod failed: exit code #{$?.exitstatus}" if $?.exitstatus != 0
|
raise "chmod failed: exit code #{$?.exitstatus}" if $?.exitstatus != 0
|
||||||
|
|
Loading…
Reference in New Issue