be possible and if this would be the right place to ask this. Feel free to
give me some guidance.
In the download page of the Go installation binaries I can see that is
implemented with the Google Cloud Storage host. They currently have a great
Go API for dealing with this service. The problem is that when I try to do
like a "service discovery" I receive this output:
GET request from https://storage.googleapis.com/golang/:
Anonymous callers do not have storage.objects.list access to bucket golang.
I would like to create a version manager tools that discovers during
runtime new official binaries, their platforms and versions. This tool
should be made with the Go language and be cross platform (Win, Linux,
Mac). I just want the client to download a zip file with my tool already
prebuild, unzip it and be ready to download multiple versions of Go.
My idea is to leverage the Google Cloud SDK (an example here
order to create something similar to Python's virtualenv tool.
There are currently two tools that tries to do the same thing and their
shortcomings in my opinion:
- goenv <https://bitbucket.org/ymotongpoo/goenv> - They use git for
checking out a version of the go repo and building from source. I want to
avoid any external tool dependency in order to be cross-platform. Relying
on git and the make tool gives too many troubles on Windows. Also, building
the source is error prone and slow for continuous integration. I really
prefer to download the "official" binary and use the checksum for integrity
- gimme <https://github.com/travis-ci/gimme>* - *Nice tool from the Travis
CI team but they have hardcoded the download links. There is no way of
dynamically discovering new binary versions without an update or at least
changing the "known-binary-versions" file. Also, they are using bash shell
scripts that are not compatible with Windows PowerShell. I really would
love to avoid regex solutions or asking the user of installing mingw /
Currently I can only think of two possible solutions:
1. Do the same thing like "gimme" and play with some regex foo magic for
binary discovery. This solution feels cheesy but at least with an
implementation in Go it would work on Windows. This solution will only work
as long as the Go team continue using their current naming conventions. If
they suddenly change it, then it could become a nightmare for maintenance.
1. Do the hosting myself. An instance of AWS S3 isn't an option. I want
my project to be open source and free for anybody. I could use a free
hosting like Github for storing a copy of the official binaries and their
checksums. There is no reliable API for Github in Go. Maybe I could use
Google Drive REST API with their official Go library
<https://developers.google.com/drive/v2/web/quickstart/go>. Another free
option could be Dropbox. I don't know how well it would work the "binary
discovery" on Google Drive and Dropbox. But assuming that this is the way
to go, I would still need to maintain the continuous copy/pasting myself
instead of using the official release page.
My question is, there is a way of requesting the download's page
admin/webmaster to allow anonymous calls to the bucket list in Go? Also, it
could be possible of asking that the archived older versions from *code.google.com
<https://code.google.com/p/go/downloads/list?can=1>* be serviced discoverable?
Currently the supported binaries and the legacy ones are separated into two
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firstname.lastname@example.org.
For more options, visit https://groups.google.com/d/optout.