From 727cf5e917780fd80c4de6ddcaa97000774f3806 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Fri, 17 May 2024 12:32:29 +0900 Subject: [PATCH] extend/pathname: restore old rmtree behaviour --- Library/.rubocop.yml | 3 ++- Library/Homebrew/.rubocop.yml | 1 + Library/Homebrew/extend/pathname.rb | 2 ++ Library/Homebrew/extend/pathname/rmtree.rb | 15 +++++++++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 Library/Homebrew/extend/pathname/rmtree.rb diff --git a/Library/.rubocop.yml b/Library/.rubocop.yml index 0376d206f9..66674395f5 100644 --- a/Library/.rubocop.yml +++ b/Library/.rubocop.yml @@ -221,7 +221,7 @@ Performance/MethodObjectAsBlock: RSpec: Include: - - 'Homebrew/test/**/*' + - "Homebrew/test/**/*" # Intentionally disabled as it doesn't fit with our code style. RSpec/AnyInstance: @@ -284,6 +284,7 @@ Sorbet/TrueSigil: - "/**/{Formula,Casks}/**/*.rb" - "**/{Formula,Casks}/**/*.rb" - "Homebrew/test/**/*.rb" + - "Homebrew/extend/pathname/rmtree.rb" # Require &&/|| instead of and/or Style/AndOr: diff --git a/Library/Homebrew/.rubocop.yml b/Library/Homebrew/.rubocop.yml index a35001a936..758ea8806f 100644 --- a/Library/Homebrew/.rubocop.yml +++ b/Library/Homebrew/.rubocop.yml @@ -33,6 +33,7 @@ Style/Documentation: - extend/ENV/super.rb - extend/kernel.rb - extend/pathname.rb + - extend/pathname/rmtree.rb - formula.rb - formula_assertions.rb - formula_free_port.rb diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index 8b0c072d4c..047dd908ee 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -584,3 +584,5 @@ module ObserverPathnameExtension puts "uninfo #{self}" if ObserverPathnameExtension.verbose? end end + +require "extend/pathname/rmtree" diff --git a/Library/Homebrew/extend/pathname/rmtree.rb b/Library/Homebrew/extend/pathname/rmtree.rb new file mode 100644 index 0000000000..e691615902 --- /dev/null +++ b/Library/Homebrew/extend/pathname/rmtree.rb @@ -0,0 +1,15 @@ +# typed: false +# frozen_string_literal: true + +class Pathname + # Like regular `rmtree`, except it never ignores errors. + # + # This was the default behaviour in Ruby 3.1 and earlier. + # + # @api public + def rmtree(noop: nil, verbose: nil, secure: nil) + # odeprecated "rmtree", "FileUtils#rm_r" + FileUtils.rm_r(@path, noop:, verbose:, secure:) + nil + end +end