termui - Goで作られたターミナルベースのダッシュボード

2015 03 13 0 22 26

termui」は、Goで作られたターミナルで動作するダッシュボードソフトです。サイトの説明によると、blessed-contribというJavaScript製ダッシュボードソフトに触発されたそうですが、こちらは純粋にGoだけで作られているところが特徴となっています。

Go言語のおかげで、クロスプラットフォームで動作し、簡単にコンパイル可能で、カスタマイズも簡単ということなので、ターミナルダッシュボードを探している方は試してみると良いかもしれません。

実行方法

Goの実行環境はインストール済みとして、まず、以下のコマンドでtermuiをインストールします。

go get github.com/gizak/termui

肝心のダッシュボードの定義は、以下のようにGo言語で記述します。

import ui "github.com/gizak/termui" // <- ui shortcut, optional

    func main() {
        err := ui.Init()
        if err != nil {
            panic(err)
        }
        defer ui.Close()

        p := ui.NewPar(":PRESS q TO QUIT DEMO")
        p.Height = 3
        p.Width = 50
        p.TextFgColor = ui.ColorWhite
        p.Border.Label = "Text Box"
        p.Border.FgColor = ui.ColorCyan

        g := ui.NewGauge()
        g.Percent = 50
        g.Width = 50
        g.Height = 3
        g.Y = 11
        g.Border.Label = "Gauge"
        g.BarColor = ui.ColorRed
        g.Border.FgColor = ui.ColorWhite
        g.Border.LabelFgColor = ui.ColorCyan

        ui.Render(p, g)

        // event handler...
    }

とりあえず動かしたい場合、termuiのソースコードに含まれるexampleを実行するのが手っ取り早いかもしれません。

$ git clone gizak/termui
$ cd termui/example
$ go run dashboard.go

テーマ機能もサポートしていて、以下のようなダークモードのダッシュボードを表示することもできます。

2015 03 13 0 32 03

まとめ

ダッシュボードが提供しているのは枠組みだけなので、そこに何を表示するかは自分でカスタマイズ(プログラミング)する必要があります。簡単なものから除々に機能を増やしていくと、実用性とともに自分のGoプログラミングの技術も向上していくかもしれません。ダッシュボードを純粋に使いたい方にも、今年こそはGo言語を勉強したいと思っている開発者の方にもおすすめのソフトといえそうです。

スポンサーリンク