tap: rmdir when tap failed or interrupted
Fixes Homebrew/homebrew#43280. Closes Homebrew/homebrew#43352. Signed-off-by: Xu Cheng <xucheng@me.com>
This commit is contained in:
parent
3458b99d6e
commit
a5aba7f7d8
@ -25,7 +25,16 @@ module Homebrew
|
||||
remote = clone_target || "https://github.com/#{tap.user}/homebrew-#{tap.repo}"
|
||||
args = %W[clone #{remote} #{tap.path}]
|
||||
args << "--depth=1" unless ARGV.include?("--full")
|
||||
|
||||
begin
|
||||
safe_system "git", *args
|
||||
rescue Interrupt, ErrorDuringExecution
|
||||
ignore_interrupts do
|
||||
sleep 0.1 # wait for git to cleanup the top directory when interrupt happens.
|
||||
tap.path.parent.rmdir_if_possible
|
||||
end
|
||||
raise
|
||||
end
|
||||
|
||||
formula_count = tap.formula_files.size
|
||||
puts "Tapped #{formula_count} formula#{plural(formula_count, "e")} (#{tap.path.abv})"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user