Add `$OS`, `$ARCH` aliases in `clients.config` and `plugin.config`
I'd like to be able to package a multi-OS, multi-architecture reseed plugin using a ShellService
and reseed-tools
. If possible, I'd like to distribute this as a single .su3
file containing all the binaries for all architectures. These are fully-static, pure-Go binaries which should not depend on any particular libc, for instance, and which are named according to the convention: reseed-tools-$OS-$ARCH
. I'd like to be able to use this convention in clients.config
in order to make it possible to use a single clients.config
and plugin.config
to create a single plugin which will work for all platforms.
I currently build 10 binaries of the reseed server every release, for Linux(arm, arm64, i386, amd64), Windows(i386, amd64), OSX(amd64), FreeBSD(amd64, i386), and OpenBSD(amd64). Working builds are available here: https://github.com/eyedeekay/reseed-tools/releases/tag/v0.0.9 Without the ability to detect OS and architecture in clients.config
I also have to build 10 plugins(at least). This isn't a big deal for me from a release-engineering perspective, but I think it will be easier for end users to have a single plugin to download which works automatically instead of being required to pick the correct one from the reseed page.
Static Go binaries are a little chunky, so this first plugin download will be huge, roughly 160MB, which brings me to the reason I want to be able to use $OS
and $ARCH
in plugin.config
if I can do that then I can construct the updateURL like so: http://idk.i2p/reseed-tools/$OS/$ARCH
and the reduce the size of the update to 15.4MB instead.