From a428aa6617899ac4226427423b8ed6b66dc77668 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Fri, 11 Dec 2020 02:21:20 +0100 Subject: [PATCH] Wrap `guess_cask_version` with timeout. --- .../dev-cmd/bump-unversioned-casks.rb | 54 +++++++++++-------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/Library/Homebrew/dev-cmd/bump-unversioned-casks.rb b/Library/Homebrew/dev-cmd/bump-unversioned-casks.rb index e9a6de0969..c3e0eaec43 100644 --- a/Library/Homebrew/dev-cmd/bump-unversioned-casks.rb +++ b/Library/Homebrew/dev-cmd/bump-unversioned-casks.rb @@ -126,30 +126,40 @@ module Homebrew onoe e end - if sha256.present? && last_sha256 != sha256 && (version = unversioned_cask_checker.guess_cask_version) - if cask.version == version - oh1 "Cask #{cask} is up-to-date at #{version}" - else - bump_cask_pr_args = [ - "bump-cask-pr", - "--version", version.to_s, - "--sha256", ":no_check", - "--message", "Automatic update via `brew bump-unversioned-casks`.", - cask.sourcefile_path - ] - - if dry_run - bump_cask_pr_args << "--dry-run" - oh1 "Would bump #{cask} from #{cask.version} to #{version}" - else - oh1 "Bumping #{cask} from #{cask.version} to #{version}" + if sha256.present? && last_sha256 != sha256 + version = begin + Timeout.timeout(1.minute) do + unversioned_cask_checker.guess_cask_version end + rescue Timeout::Error + onoe "Timed out guessing version for cask '#{cask}'." + end - begin - system_command! HOMEBREW_BREW_FILE, args: bump_cask_pr_args - rescue ErrorDuringExecution => e - onoe e - return + if version + if cask.version == version + oh1 "Cask #{cask} is up-to-date at #{version}" + else + bump_cask_pr_args = [ + "bump-cask-pr", + "--version", version.to_s, + "--sha256", ":no_check", + "--message", "Automatic update via `brew bump-unversioned-casks`.", + cask.sourcefile_path + ] + + if dry_run + bump_cask_pr_args << "--dry-run" + oh1 "Would bump #{cask} from #{cask.version} to #{version}" + else + oh1 "Bumping #{cask} from #{cask.version} to #{version}" + end + + begin + system_command! HOMEBREW_BREW_FILE, args: bump_cask_pr_args + rescue ErrorDuringExecution => e + onoe e + return + end end end end