I have written an xml-rpc based update checker - you can access source code here.
It won't install the update automatically, but it will at least check for it automatically (or on demand), so user can download and install.
You will need a server-side counterpart. I have written one in Coldfusion which you can use as example (its posted on the site somewhere but not in source-svn)...
It's pretty easy.
- Check if update is available (you'll need server-side script providing this data).
- Download this (zipped) update chunk-by-chunk and store it locally. Server-size script to provide chunks, again.
- Display progress bar while download.
- Unzip it into LR modules dir.
- Rename original plugins dir.
- Rename updated plugin dir to original.
- Display a message to user, suggesting him to reload plugin and block all future plugin's operations until reload.
I think you are missing a step between 3 and 4... privileges. No matter what you tell the users to do, they will install the plugin under /Applications or Program Files, and updating the plugin will require administrative privileges, since the user account has no write permissions to the directory.
This is the reason why I have not implemented self-updating yet.
That's right. But you always can restrict update functionality to the plug-ins, installed into the Modules directory. One can never get all he wants…