diff --git a/Library/Homebrew/cleanup.rb b/Library/Homebrew/cleanup.rb index 24d32b0cfa..e134256d74 100644 --- a/Library/Homebrew/cleanup.rb +++ b/Library/Homebrew/cleanup.rb @@ -405,28 +405,12 @@ module Homebrew end def cleanup_portable_ruby - rubies = [which("ruby"), which("ruby", ORIGINAL_PATHS)].compact - system_ruby = Pathname.new("/usr/bin/ruby") - rubies << system_ruby if system_ruby.exist? - - use_system_ruby = if Homebrew::EnvConfig.force_vendor_ruby? - false - elsif OS.mac? - ENV["HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH"].present? - else - check_ruby_version = HOMEBREW_LIBRARY_PATH/"utils/ruby_check_version_script.rb" - rubies.uniq.any? do |ruby| - quiet_system ruby, "--enable-frozen-string-literal", "--disable=gems,did_you_mean,rubyopt", - check_ruby_version, HOMEBREW_REQUIRED_RUBY_VERSION - end - end - vendor_dir = HOMEBREW_LIBRARY/"Homebrew/vendor" portable_ruby_latest_version = (vendor_dir/"portable-ruby-version").read.chomp portable_rubies_to_remove = [] Pathname.glob(vendor_dir/"portable-ruby/*.*").select(&:directory?).each do |path| - next if !use_system_ruby && portable_ruby_latest_version == path.basename.to_s + next if !use_system_ruby? && portable_ruby_latest_version == path.basename.to_s portable_rubies_to_remove << path end @@ -445,6 +429,8 @@ module Homebrew end end + def use_system_ruby?; end + def cleanup_bootsnap bootsnap = cache/"bootsnap" return unless bootsnap.exist? @@ -615,3 +601,5 @@ module Homebrew end end end + +require "extend/os/cleanup" diff --git a/Library/Homebrew/extend/os/cleanup.rb b/Library/Homebrew/extend/os/cleanup.rb new file mode 100644 index 0000000000..f96bca2d0f --- /dev/null +++ b/Library/Homebrew/extend/os/cleanup.rb @@ -0,0 +1,8 @@ +# typed: false +# frozen_string_literal: true + +if OS.mac? + require "extend/os/mac/cleanup" +elsif OS.linux? + require "extend/os/linux/cleanup" +end diff --git a/Library/Homebrew/extend/os/linux/cleanup.rb b/Library/Homebrew/extend/os/linux/cleanup.rb new file mode 100644 index 0000000000..474a3f08ce --- /dev/null +++ b/Library/Homebrew/extend/os/linux/cleanup.rb @@ -0,0 +1,22 @@ +# typed: false +# frozen_string_literal: true + +module Homebrew + class Cleanup + undef use_system_ruby? + + def use_system_ruby? + return false if Homebrew::EnvConfig.force_vendor_ruby? + + rubies = [which("ruby"), which("ruby", ORIGINAL_PATHS)].compact + system_ruby = Pathname.new("/usr/bin/ruby") + rubies << system_ruby if system_ruby.exist? + + check_ruby_version = HOMEBREW_LIBRARY_PATH/"utils/ruby_check_version_script.rb" + rubies.uniq.any? do |ruby| + quiet_system ruby, "--enable-frozen-string-literal", "--disable=gems,did_you_mean,rubyopt", + check_ruby_version, HOMEBREW_REQUIRED_RUBY_VERSION + end + end + end +end diff --git a/Library/Homebrew/extend/os/mac/cleanup.rb b/Library/Homebrew/extend/os/mac/cleanup.rb new file mode 100644 index 0000000000..549e09eaca --- /dev/null +++ b/Library/Homebrew/extend/os/mac/cleanup.rb @@ -0,0 +1,14 @@ +# typed: false +# frozen_string_literal: true + +module Homebrew + class Cleanup + undef use_system_ruby? + + def use_system_ruby? + return false if Homebrew::EnvConfig.force_vendor_ruby? + + ENV["HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH"].present? + end + end +end