markcarver/Sparkle — comment on commit 3f1d59343168237e760951cb6026b26b8a6f9b34
File:  line 0
By andymatuschak:

> Exactly how this _used_ to work. However, the current `updaterShouldRelaunchApplication:` method is invoking `mayUpdateAndRestart` before the rest of the method has a chance to run. As it stands now, if the delegate subclasses `updaterShouldRelaunchApplication:` and returns `NO` then `abortUpdate` is called and the new `finish_installation` tool does not get ran, thus not installing the actual update (which _is_ delegated to the new `finish_installation` tool).

Thats actually more or less the intended behavior. But I see your point: we should probably rename it to updater:shouldQuitAndInstallUpdate:. Well have to keep the old delegate around (and deprecate it), for compatibility purposes.

>> But that would lead to the app being terminated without any user input!
>
> Indeed, but I was under the impression that that is what this branch was for (quiet-automatic-update), to provide a fully automatic update and install with-out the prompts?

Ah, no, the intent was that the app would update automatically without prompts when the user quits. We cant quit the app without user interaction.

> `cocoaDialog update` will run the update run-mode, complete with dialogs. However because it's a third-party support application (to be used in other scripts) often the user is unaware that `cocoaDialog` even exists. So the script could call something like `cocoaDialog update --quiet`, which in turn translates into cocoaDialog utilizing this delegate method to suppress any dialogs from Sparkle and simply update it to the latest version. The script then can continue with the current version (if no update existed) or have comfort knowing that they have the latest version all the time.

Hm, I dont think I understand.