From 8a29cf49ffc71637cc46dd85e6c2a58ad27ade63 Mon Sep 17 00:00:00 2001 From: Yulian Kuncheff Date: Mon, 15 Sep 2025 13:50:15 +0200 Subject: [PATCH 1/2] Add support for Linux to visual-studio-code cask --- Casks/v/visual-studio-code.rb | 87 +++++++++++++++++++++++++---------- 1 file changed, 63 insertions(+), 24 deletions(-) diff --git a/Casks/v/visual-studio-code.rb b/Casks/v/visual-studio-code.rb index 63c773319bc44..dabf81ece5a0e 100644 --- a/Casks/v/visual-studio-code.rb +++ b/Casks/v/visual-studio-code.rb @@ -1,5 +1,21 @@ +module Utils + define_singleton_method(:os_arch_combo) do |os, arch| + return "#{os}-#{arch}" if os == "linux" + return "#{os}-#{arch}" if os == "darwin" && arch == "arm64" + + os.to_s + end + + define_singleton_method(:binary_path) do |appdir, os, arch, version| + return "/home/linuxbrew/.linuxbrew/Caskroom/visual-studio-code/#{version}/VSCode-linux-#{arch}/bin" if os == "linux" + + "#{appdir}/Visual Studio Code.app/Contents/Resources/app/bin" + end +end + cask "visual-studio-code" do - arch arm: "darwin-arm64", intel: "darwin" + arch arm: "arm64", intel: "x64" + os macos: "darwin", linux: "linux" on_catalina :or_older do version "1.97.2" @@ -16,39 +32,62 @@ intel: "79531e3edb4c1bdcff829bc7ecfada215eee34bee6bc110fcdbfb68a57926974" livecheck do - url "https://update.code.visualstudio.com/api/update/#{arch}/stable/latest" + url "https://update.code.visualstudio.com/api/update/#{Utils.os_arch_combo(os, arch)}/stable/latest" strategy :json do |json| json["productVersion"] end end end - url "https://update.code.visualstudio.com/#{version}/#{arch}/stable" + on_linux do + version "1.104.0" + sha256 arm64_linux: "92d29b2206c5d5e979c4707e012dee3f7a37e47d9d221509e0d1cd0a8421237b", + x86_64_linux: "0019db2e217c00a0a5b068e11dbff22b88c3dd3b7ccbf35d6f189c4a4a7e1dbb" + + livecheck do + url "https://update.code.visualstudio.com/api/update/#{Utils.os_arch_combo(os, arch)}/stable/latest" + strategy :json do |json| + json["productVersion"] + end + end + end + + url "https://update.code.visualstudio.com/#{version}/#{Utils.os_arch_combo(os, arch)}/stable" name "Microsoft Visual Studio Code" name "VS Code" desc "Open-source code editor" homepage "https://code.visualstudio.com/" auto_updates true - depends_on macos: ">= :catalina" - - app "Visual Studio Code.app" - binary "#{appdir}/Visual Studio Code.app/Contents/Resources/app/bin/code" - binary "#{appdir}/Visual Studio Code.app/Contents/Resources/app/bin/code-tunnel" - - uninstall launchctl: "com.microsoft.VSCode.ShipIt", - quit: "com.microsoft.VSCode" - - zap trash: [ - "~/.vscode", - "~/Library/Application Support/Code", - "~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.microsoft.vscode.sfl*", - "~/Library/Caches/com.microsoft.VSCode", - "~/Library/Caches/com.microsoft.VSCode.ShipIt", - "~/Library/HTTPStorages/com.microsoft.VSCode", - "~/Library/Preferences/ByHost/com.microsoft.VSCode.ShipIt.*.plist", - "~/Library/Preferences/com.microsoft.VSCode.helper.plist", - "~/Library/Preferences/com.microsoft.VSCode.plist", - "~/Library/Saved Application State/com.microsoft.VSCode.savedState", - ] + + app "Visual Studio Code.app" if os == "darwin" + binary "#{Utils.binary_path("", os, arch, version)}/code" + binary "#{Utils.binary_path(appdir, os, arch, version)}/code-tunnel" + + if os == "linux" + zap trash: [ + "~/.config/Code", + "~/.vscode", + ] + end + + if os == "darwin" + depends_on macos: ">= :catalina" + + uninstall launchctl: "com.microsoft.VSCode.ShipIt", + quit: "com.microsoft.VSCode" + + zap trash: [ + "~/.vscode", + "~/Library/Application Support/Code", + "~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.microsoft.vscode.sfl*", + "~/Library/Caches/com.microsoft.VSCode", + "~/Library/Caches/com.microsoft.VSCode.ShipIt", + "~/Library/HTTPStorages/com.microsoft.VSCode", + "~/Library/Preferences/ByHost/com.microsoft.VSCode.ShipIt.*.plist", + "~/Library/Preferences/com.microsoft.VSCode.helper.plist", + "~/Library/Preferences/com.microsoft.VSCode.plist", + "~/Library/Saved Application State/com.microsoft.VSCode.savedState", + ] + end end From be1f7ad514608b2be4df2188251b4938d3f3a2d6 Mon Sep 17 00:00:00 2001 From: Yulian Kuncheff Date: Mon, 15 Sep 2025 14:10:32 +0200 Subject: [PATCH 2/2] Fix appdir --- Casks/v/visual-studio-code.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Casks/v/visual-studio-code.rb b/Casks/v/visual-studio-code.rb index dabf81ece5a0e..e79a24bb179f9 100644 --- a/Casks/v/visual-studio-code.rb +++ b/Casks/v/visual-studio-code.rb @@ -61,7 +61,7 @@ module Utils auto_updates true app "Visual Studio Code.app" if os == "darwin" - binary "#{Utils.binary_path("", os, arch, version)}/code" + binary "#{Utils.binary_path(appdir, os, arch, version)}/code" binary "#{Utils.binary_path(appdir, os, arch, version)}/code-tunnel" if os == "linux"