id = "superduper" name = "SuperDuper!" homepage = "https://www.shirt-pocket.com" description = "Heroic system recovery for mere mortals." # The app icon, from shirt-pocket.com. icon = "https://www.shirt-pocket.com/assets/superduper-classic.png" # SuperDuper! ships no command-line tool a user types, so `detect` carries the # bundle identifier. It is the one the Homebrew cask unloads and zaps # (https://formulae.brew.sh/api/cask/superduper.json: launchctl # "com.shirtpocket.SuperDuper4.menu", and the three # ~/Library/Preferences/com.shirtpocket.SuperDuper4*.plist files below). executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["com.shirtpocket.SuperDuper4"] [dotfiles] # The description is Shirt Pocket's own line for the app on its site. # # SuperDuper! is a direct download rather than an App Store app, so its # settings land in ordinary preferences domains. The cask's zap list names # three of them — the app itself, its `.shared` domain and the menu-bar # helper's — which is where the copy options, the scheduling and the app's # behaviour live. # # [preferences] is ~/Library/Preferences; the entry is macOS-only, so there is # no other platform for that root to stand for. paths = [ "[preferences]/com.shirtpocket.SuperDuper4.plist", "[preferences]/com.shirtpocket.SuperDuper4.shared.plist", "[preferences]/com.shirtpocket.SuperDuper4.menu.plist", ] # The same zap list names ~/Library/Application Support/SuperDuper! and # ~/Library/Caches/com.shirtpocket.SuperDuper4. The cache is a cache; what the # Application Support directory holds is not documented anywhere the author of # this entry could check, so it is neither listed as configuration nor claimed # to be state. exclude = [] # No whole-file credential among the three domains above, and the one password # SuperDuper! handles is not in them: its user's guide says that when a network # share is missing at copy time "SuperDuper connects it on demand using the # password saved in your keychain", which is outside this catalog's reach. # The licence is entered in the app and the guide does not say where it is # written, so nothing here is named as that credential either — a consumer that # scans content is the layer that would catch it. secret = [] # No machine_lines. A backup schedule names a source and a destination volume # attached to this Mac, which is the one machine-shaped thing in these files — # but a property list has no matcher in this schema, since `format` covers # toml, yaml and json only, so nothing can be claimed here either way.