61 lines
1.9 KiB
Markdown
61 lines
1.9 KiB
Markdown
|
+++
|
||
|
date = "2017-03-30"
|
||
|
tags = ["golang"]
|
||
|
title = "ipinfo-go-releases"
|
||
|
slug = "golang"
|
||
|
+++
|
||
|
|
||
|
昨日紹介したgolang製のツール、preview版ではなくversionでリリースしてみた。
|
||
|
|
||
|
https://github.com/syui/ipinfo/releases
|
||
|
|
||
|
マルチビルドしてるので色々なOSで使えるはず、多分。
|
||
|
|
||
|
このツールは名前の通り、ipinfo.ioを叩く機能と、同時にdarksky.ioで天候や気温などを取得できる感じになっている。
|
||
|
|
||
|
ちょっと修正して挙動をよりシンプルにした。
|
||
|
|
||
|
使い方としては基本的にバイナリをダウンロードしてリネーム、実行権限を付与という感じで使う。
|
||
|
|
||
|
```bash
|
||
|
$ 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を使ってみたかった。
|