cask "parallels@18" do version "18.3.4-53630" sha256 "a53ff243c2d8030bcc0954aefa209e02db0a099a7294bcea4a5ced27c7b4c615" url "https://download.parallels.com/desktop/v#{version.major}/#{version}/ParallelsDesktop-#{version}.dmg" name "Parallels Desktop" desc "Desktop virtualization software" homepage "https://www.parallels.com/products/desktop/" livecheck do url "https://update.parallels.com/desktop/v#{version.major}/parallels/parallels_updates.xml" regex(/ParallelsDesktop[._-]v?(\d+(?:[.-]\d+)+)\.dmg/i) strategy :xml do |xml, regex| url = xml.elements["//FilePath"]&.text&.strip match = url.match(regex) if url next if match.blank? match[1] end end auto_updates true conflicts_with cask: [ "parallels", "parallels@19", "parallels@20", ] depends_on :macos app "Parallels Desktop.app" preflight_steps do run "chflags", args: ["nohidden", "{{staged_path}}/Parallels Desktop.app"] run "xattr", args: ["-d", "com.apple.FinderInfo", "{{staged_path}}/Parallels Desktop.app"] end postflight_steps do run "Parallels Desktop.app/Contents/MacOS/inittool", args: ["init"], base: :appdir, sudo: true end uninstall_preflight_steps do set_ownership "Parallels Desktop.app", base: :appdir end uninstall signal: ["TERM", "com.parallels.desktop.console"], delete: [ "/usr/local/bin/prl_convert", "/usr/local/bin/prl_disk_tool", "/usr/local/bin/prl_perf_ctl", "/usr/local/bin/prlcore2dmp", "/usr/local/bin/prlctl", "/usr/local/bin/prlexec", "/usr/local/bin/prlsrvctl", ] zap delete: "/Library/Preferences/Parallels", trash: [ "~/.parallels_settings", "~/Applications (Parallels)", "~/Library/Application Scripts/*.com.parallels.Desktop", "~/Library/Application Scripts/com.parallels.desktop*", "~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.parallels.desktop.console.sfl*", "~/Library/Caches/com.apple.helpd/Generated/com.parallels.desktop.console.help*", "~/Library/Caches/com.parallels.desktop.console", "~/Library/Caches/Parallels Software/Parallels Desktop", "~/Library/Containers/com.parallels.desktop*", "~/Library/Group Containers/*.com.parallels.Desktop", "~/Library/Logs/parallels.log", "~/Library/Parallels/Applications Menus", "~/Library/Parallels/Parallels Desktop", "~/Library/Preferences/com.parallels.desktop.console.LSSharedFileList.plist", "~/Library/Preferences/com.parallels.desktop.console.plist", "~/Library/Preferences/com.parallels.Parallels Desktop Events.plist", "~/Library/Preferences/com.parallels.Parallels Desktop Statistics.plist", "~/Library/Preferences/com.parallels.Parallels Desktop.plist", "~/Library/Preferences/com.parallels.Parallels.plist", "~/Library/Preferences/com.parallels.PDInfo.plist", "~/Library/Preferences/Parallels", "~/Library/Saved Application State/com.parallels.desktop.console.savedState", ], rmdir: [ "/Users/Shared/Parallels", "~/Library/Caches/Parallels Software", "~/Library/Parallels", "~/Parallels", ] end