id = "spamsieve" name = "SpamSieve" homepage = "https://c-command.com/spamsieve/" # The vendor's own sentence, from the SpamSieve product page. description = "Adds powerful Bayesian spam filtering to the e-mail client on your Mac." # The app icon, from the product page on the developer's site. icon = "https://c-command.com/spamsieve/images/spamsieve-icon@2x.png" # SpamSieve ships no command-line tool, so `detect` carries the bundle # identifier. The vendor's own uninstall page names its preferences file as # ~/Library/Preferences/com.c-command.SpamSieve.plist, and the Homebrew cask # zaps the same domain (Casks/s/spamsieve.rb). executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["com.c-command.SpamSieve"] [dotfiles] # The manual's "Uninstalling SpamSieve" page lists exactly three locations # under the user's home: ~/Library/Application Support/SpamSieve (which it # describes as SpamSieve's "data files and configuration information"), # ~/Library/Preferences/com.c-command.SpamSieve.plist (the preference settings) # and ~/Library/Logs/SpamSieve (the log). It also says why the first one is # worth carrying: "If you delete these files, you will have to re-train # SpamSieve if you reinstall it." # # Two files inside the support folder are named elsewhere in the same manual: # "Rules.spamsieve-rules" (troubleshooting "What can I do if the rules are # damaged?") is the user's own allow-list and block-list, and # "Corpus.spamsieve-corpus" ("What can I do if the corpus is damaged?") is the # trained corpus — large, but it is the training the manual tells you not to # lose. # # [appData] and [preferences] are ~/Library/Application Support and # ~/Library/Preferences; the entry is macOS-only, so there is no other platform # for those roots to stand for. paths = [ "[appData]/SpamSieve/", "[preferences]/com.c-command.SpamSieve.plist", ] # The log is the third location on that page and it is outside the support # folder (~/Library/Logs/SpamSieve), as are the caches in the cask's zap list, # so nothing above needs carving out. # No whole-file credential: nothing the manual names in either location is a # credential end to end. SpamSieve is paid software and the manual does not say # where it records the serial number once entered — if it lands anywhere it is # a field of the preferences domain, and a property list cannot be matched # field-wise by this schema, so there is no rule to write for it. secret = [] # No machine_lines: the rules and the corpus are the point of carrying this # folder, and a plist has no matcher here either — `format` covers toml, yaml # and json only.