diff --git a/scripts/release/macos/templates/azure-cli.rb.in b/scripts/release/macos/templates/azure-cli.rb.in index 4b5e7e93385..6941ba1fe62 100644 --- a/scripts/release/macos/templates/azure-cli.rb.in +++ b/scripts/release/macos/templates/azure-cli.rb.in @@ -1,12 +1,12 @@ cask "azure-cli" do arch arm: "arm64", intel: "x86_64" - os macos: "macos" version "{{ version }}" sha256 arm: "{{ arm64_sha }}", intel: "{{ x86_64_sha }}" - url "https://github.com/{{ github_repo }}/releases/download/azure-cli-#{version}/azure-cli-#{version}-#{os}-#{arch}.tar.gz" + url "https://github.com/{{ github_repo }}/releases/download/azure-cli-#{version}/azure-cli-#{version}-macos-#{arch}.tar.gz", + verified: "github.com/{{ github_repo }}/" name "Azure CLI" desc "Microsoft Azure CLI 2.0" homepage "https://docs.microsoft.com/cli/azure/overview" @@ -19,9 +19,9 @@ cask "azure-cli" do depends_on formula: "python@{{ python_version }}" binary "bin/az" - zsh_completion "completions/zsh/_az" bash_completion "completions/bash/az" fish_completion "completions/fish/az.fish" + zsh_completion "completions/zsh/_az" zap trash: "~/.azure" end diff --git a/src/azure-cli/azure/cli/command_modules/util/custom.py b/src/azure-cli/azure/cli/command_modules/util/custom.py index ca71e1bcaf2..c8fdfe427f3 100644 --- a/src/azure-cli/azure/cli/command_modules/util/custom.py +++ b/src/azure-cli/azure/cli/command_modules/util/custom.py @@ -132,9 +132,24 @@ def upgrade_version(cmd, update_all=None, yes=None, allow_preview=None): # pyli exit_code = subprocess.call(update_cmd) elif installer == 'HOMEBREW_CASK': logger.debug("Update homebrew cask") + # Determine cask token: 'azure-cli-preview' (custom tap) or 'azure-cli' (homebrew-cask) + try: + preview_installed = subprocess.call(['brew', 'list', '--cask', 'azure-cli-preview'], + stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) == 0 + cli_installed = subprocess.call(['brew', 'list', '--cask', 'azure-cli'], + stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) == 0 + if preview_installed: + cask_token = 'azure-cli-preview' + elif cli_installed: + cask_token = 'azure-cli' + else: + raise CLIError(UPGRADE_MSG) + except OSError as ex: + logger.debug("Failed to detect Homebrew cask token: %s", ex) + cask_token = 'azure-cli' exit_code = subprocess.call(['brew', 'update']) if exit_code == 0: - update_cmd = ['brew', 'upgrade', '--cask', 'azure-cli'] + update_cmd = ['brew', 'upgrade', '--cask', cask_token] logger.debug("Update azure cli with '%s'", " ".join(update_cmd)) exit_code = subprocess.call(update_cmd) elif installer == 'PIP':