2019-01-30 / @syui

ascii

CLIでlocation mapを表示する

location mapをcliからqueryして表示したいと思ったので、調べてみたら、面白そうなツールがいくつか見つかりました。

$ whois example.com
$ nslookup exmaple.com
8.8.8.8 #google dns server

# https://github.com/yaronn/blessed-contrib
$ git clone https://github.com/yaronn/blessed-contrib.git
$ cd blessed-contrib
$ node examples/map-query-location.js `curl -sL ipinfo.io/8.8.8.8/loc`

# https://github.com/rastapasta/mapscii
$ sudo npm install -g mapscii
$ mapscii

mapsciiはsecrity的にあまりよろしくなさそうな感じですかね。

blessed-contrib/examples/map-query-location.js

var blessed = require('blessed')
  , contrib = require('../')
  , screen = blessed.screen()
  , map = contrib.map({label: 'World Map'})
  , loc = process.argv[2]
  , rLoc = loc.split(",")
    
screen.append(map)
map.addMarker({"lat" : rLoc[0], "lon" : rLoc[1], color: "red", char: "X" })

screen.render()

nodeのblessed-contribに触発され、golangやrustで書かれたものもあるみたいです。これらを使ってcli toolを書くと便利そう。

https://github.com/gizak/termui

https://github.com/fdehau/tui-rs

rustのやつはmapのuiが作れそうですが、golangのは簡単には無理っぽい感じでした。