2017-03-30 / @syui

golang

ipinfo-go-releases

昨日紹介したgolang製のツール、preview版ではなくversionでリリースしてみた。

https://github.com/syui/ipinfo/releases

マルチビルドしてるので色々なOSで使えるはず、多分。

このツールは名前の通り、ipinfo.ioを叩く機能と、同時にdarksky.ioで天候や気温などを取得できる感じになっている。

ちょっと修正して挙動をよりシンプルにした。

使い方としては基本的にバイナリをダウンロードしてリネーム、実行権限を付与という感じで使う。

$ cd $GOPATH/bin
$ curl -LO https://github.com/syui/ipinfo/releases/download/0.1/darwin_amd64_ipinfo
$ mv darwin_amd64_ipinfo ipinfo
$ chmod +x ipinfo
$ export PATH=$PATH:$GOPATH/bin


$ ipinfo
192.30.252.153  


$ ./ipinfo h

COMMANDS:
     ipinfo, i  ipinfo.io
                  sub-command : ip(i), country(c), city(ci), loc(l), org(o)
     ip         grobal ip address
     loc        location gps
     sky, s     darksky.io
                  sub-command : info(i)
     all, a     json
     help, h    Shows a list of commands or help for one command

 
$ ./ipinfo s i 

Asia/Tokyo: Clear
humidity: 0.00
temperature: 0.00 Celsius
wind speed: 0.00

ビルドして使う場合は、以下のようにする。API Keyをenvで取ってきてたんだけど、バイナリに埋め込む感じにした。バイナリ配布する場合はそのデータから値を取り出すこともできそうなので気をつけたほうがよさそうではある。

# https://darksky.net/dev/account
$ go build -ldflags "-X main.apikey=$apikey"

golangって多分、main.goはバイナリ配布で、repo.goはrepo_test.goのテスト付けてimportして使うのが一般的だと思うのだけど、codecovを使ってみたかった。