Go(以下 Golang)のリリースされている最新のバージョンを cURL で取得したい。
ぶっちゃけ https://go.dev/dl/ を覗きに行けばいいのですが、golang 本体の更新をパッケージマネージャでなく俺様スクリプトで行っているため、バージョン情報を取得できるエンドポイントが欲しかったのです。
golang 最新リリースバージョン 確認 curl
でググってもピンポイントでヒットしなかったり、https://go.dev/VERSION?m=text
を使った方法ばかりだったので、自分のググラビリティとして。
TL; DR (今北産業)
-
確認用のエンドポイントが提供されている
- 最新リリース・バージョンの確認 URL:
https://go.dev/dl/?mode=json
- 最新リリース・バージョンの確認 URL:
- よく見かける
https://go.dev/VERSION?m=text
は、https://go.dev/
のバックエンドで動いている golang のバージョン1で、最新と異なることがある - レスポンスは JSON なので
jq
コマンドなどで抜き出す必要がある
最初のstableバージョンを抜き出す
LATEST=$(curl -sSL https://go.dev/dl/?mode=json | jq -r ['.[] | select(.stable == true)'][0].version)
実行例
$ curl -sSL https://go.dev/dl/?mode=json | jq -r ['.[] | select(.stable == true)'][0].version
go1.22.4
- オンラインで動作をみる @ paiza.IO
ちなみに、最新ではないものの go.dev
のドキュメントで生成されるサンプルの動作と合わせたい場合は、https://go.dev/VERSION?m=text
の最初の行だけを取り出すと、バージョンを合わせられます。
go.devのgoバージョンを取得
CURRENT=$(curl -s https://go.dev/VERSION?m=text | head -n 1)
実行例
$ curl -s https://go.dev/VERSION?m=text | head -n 1
go1.22.1
参考文献
- URL for latest stable Go release @ StackOverflow
- Hitting curl https://go.dev/VERSION?m=text returns a go version package which is not available to download | Issue #51135 | Golang @ GitHub