cask "dotnet-sdk" do arch arm: "arm64", intel: "x64" version "10.0.101" sha256 arm: "c37f87cc46a84f70d13fd2b6f213f4952b884afa05ced2dfdff450b24f98a3cc", intel: "e4210b8147d5371d43d2451ca81924bcb008d55af32537a0837bc54f5c232e70" 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", ] depends_on macos: ">= :ventura" 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