cask "dotnet-sdk" do arch arm: "arm64", intel: "x64" version "9.0.301" sha256 arm: "d19e341938cf17c2194bdb6d9f5131b8265f47c810226a5668ff7ebac20ab0c3", intel: "404e52b7837df74eae8d51a3b10fefc8a7efe25f3a711584b52b1a86c61a24fc" url "https://builds.dotnet.microsoft.com/dotnet/Sdk/#{version}/dotnet-sdk-#{version}-osx-#{arch}.pkg" name ".NET SDK" desc "Developer platform" homepage "https://www.microsoft.com/net/core#macos" # This identifies releases with the same major/minor version as the current # cask version. New major/minor releases occur annually in November and the # check will automatically update its behavior when the cask is updated. livecheck do url "https://builds.dotnet.microsoft.com/dotnet/release-metadata/#{version.major_minor}/releases.json" regex(/^v?(\d+(?:\.\d+)+)$/i) strategy :json do |json, regex| json["releases"]&.map do |release| version = release.dig("sdk", "version") next unless version&.match(regex) version end end end conflicts_with cask: [ "dotnet-runtime", "dotnet-runtime@preview", "dotnet-sdk@preview", ], formula: "dotnet" depends_on macos: ">= :mojave" pkg "dotnet-sdk-#{version.csv.first}-osx-#{arch}.pkg" binary "/usr/local/share/dotnet/dotnet" uninstall pkgutil: [ "com.microsoft.dotnet.*#{version.major_minor}*#{arch}", "com.microsoft.dotnet.sharedhost*#{arch}", "com.microsoft.netstandard.pack.targeting.*", ] zap pkgutil: "com.microsoft.dotnet.*", delete: [ "/etc/paths.d/dotnet", "/etc/paths.d/dotnet-cli-tools", ], trash: [ "~/.dotnet", "~/.nuget", ] end