Closed tgulacsi closed 8 years ago
I just wrote some notes on this here CONTRIBUTING. If you'd like to give this a shot, I'd recommend giving that a read and starting with a "stand-alone fetcher" which could convert go-selfupdate binaries into full binaries to them pass down to overseer
as a normal update.
I've started a new fetcher, based on go-selfupdate. As no inner workings are exported, I had to copy-paste most of it - though it is not much...
But as overseer does not use versioning, I had to rethink the whole url structure (see https://github.com/tgulacsi/overseer/blob/selfupdate/fetcher/fetcher_selfupdate_http.go#L23), and this way we'll need to rewrite the command line client, too.
Any suggestions on the repo name for this fetcher and the accompanying cli tool?
Looks good to me :) Only minor note would be to allow the user to control the format of the binaries (scroll up from here for example) since they might only have the OS
in the filename, or use underscores instead of hyphens. Though I guess if they have to compile using the CLI tool, then maybe you can enforce the file name?
As for the name, maybe just prefix something with overseer-
to denote an overseer "plugin"?
For early simplicity and future extensibility I think make the tool contain a single command build
which somewhat mirrors go build
– though it'll require an extra argument to the previous binary... sorry, I haven't thought it through too much yet
Let me know when the new repos up, I'll link to it in the docs. When I get time – might be months away – I'll ping you to discuss merging it into overseer
core :)
PTAL https://github.com/tgulacsi/overseer-bindiff
Now it mimics go-selfupdate's behaviour, as it needs the binary's path as the argument.
I've stumbled upon https://github.com/sanbornm/go-selfupdate which solves the binary diff problem nicely, but lacks overseer's great graceful restart capabilities.
Maybe a marriage made in heaven?
a) copy code from go-selfupdate b) just use go-selfupdate cli to generate the versions, and add a proper fetcher for such config?
I'm willing to help, but please decide which way to go, what kind and level of integration is desired!