35 lines
839 B
Ruby
35 lines
839 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Disable this task as we use pnpm
|
|
|
|
require 'semantic_range'
|
|
|
|
Rake::Task['webpacker:check_yarn'].clear
|
|
|
|
namespace :webpacker do
|
|
desc 'Verifies if Yarn is installed'
|
|
task check_yarn: :environment do
|
|
begin
|
|
yarn_version = `yarn --version`.strip
|
|
raise Errno::ENOENT if yarn_version.blank?
|
|
|
|
yarn_range = '>=4 <5'
|
|
is_valid = begin
|
|
SemanticRange.satisfies?(yarn_version, yarn_range)
|
|
rescue
|
|
false
|
|
end
|
|
|
|
unless is_valid
|
|
warn "Mastodon and Webpacker requires Yarn \"#{yarn_range}\" and you are using #{yarn_version}"
|
|
warn 'Exiting!'
|
|
exit!
|
|
end
|
|
rescue Errno::ENOENT
|
|
warn 'Yarn not installed. Please see the Mastodon documentation to install the correct version.'
|
|
warn 'Exiting!'
|
|
exit!
|
|
end
|
|
end
|
|
end
|