Skip to content

Commit 4f8d38b

Browse files
committed
cask: record skipped items on interactive prompt timeout; clearer non-interactive skip in install cmd
1 parent abd3fae commit 4f8d38b

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

Library/Homebrew/cask/installer.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,10 @@ def install
173173
puts summary
174174
end_time = Time.now
175175
Homebrew.messages.package_installed(@cask.token, end_time - start_time)
176+
rescue Timeout::Error => e
177+
opoo "Timed out waiting for user input in cask #{@cask.full_name}. Skipping."
178+
Homebrew.messages.record_skipped_prompt(@cask.full_name, e.message)
179+
return
176180
rescue
177181
restore_backup
178182
raise

Library/Homebrew/cmd/install.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,17 @@ def run
298298
opoo "Timed out waiting for user input in cask #{cask.full_name}. Skipping."
299299
Homebrew.messages.record_skipped_prompt(cask.full_name, e.message)
300300
next
301+
rescue ErrorDuringExecution => e
302+
if ENV["HOMEBREW_NON_INTERACTIVE"].present? && (
303+
e.stderr.include?("a password is required") ||
304+
e.stderr.include?("no tty present") ||
305+
e.message.include?("sudo")
306+
)
307+
opoo "Non-interactive mode: sudo/interactive prompt detected in cask #{cask.full_name}. Skipping."
308+
Homebrew.messages.record_skipped_prompt(cask.full_name, "non-interactive: sudo/interactive prompt")
309+
next
310+
end
311+
raise
301312
end
302313
end
303314

0 commit comments

Comments
 (0)