From 0fd1be9a8e58e68d1319e1f9fedaa264b086c712 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Sun, 5 Feb 2023 15:35:11 +0100 Subject: [PATCH] Add error message with instructions for the missing cask file --- Library/Homebrew/cask/cmd/upgrade.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/cask/cmd/upgrade.rb b/Library/Homebrew/cask/cmd/upgrade.rb index a96275cbe2..d9221597ca 100644 --- a/Library/Homebrew/cask/cmd/upgrade.rb +++ b/Library/Homebrew/cask/cmd/upgrade.rb @@ -146,7 +146,17 @@ module Cask caught_exceptions = [] - upgradable_casks = outdated_casks.map { |c| [CaskLoader.load(c.installed_caskfile), c] } + upgradable_casks = outdated_casks.map do |c| + if !c.installed_caskfile.exist? && c.tap.to_s == "homebrew/cask" && + Homebrew::API::Cask.all_casks.key?(c.token) + odie <<~EOS + The cask '#{c.token}' was not properly installed and cannot be upgraded. To fix this, run: + brew reinstall --cask --force #{c.token} + EOS + end + + [CaskLoader.load(c.installed_caskfile), c] + end puts upgradable_casks .map { |(old_cask, new_cask)| "#{new_cask.full_name} #{old_cask.version} -> #{new_cask.version}" }