
すごいログ分析ツールTWSLAのグラフをSixelを使ってターミナル内に表示できた
今朝は5時前に自力で起きました。風邪気味ですが、昨日からはじめたTWSLAの開発が気になって早くおきました。助手の猫さんは、1階の自分のベッドで寝てました。6時過ぎに見に行った時にやっと目が覚めたようです。
昨日作っていたTWSLAのパラメータを設定ファイルから読み込む処理はできました。viper
は、環境変数からも設定を読み込めるようなので、その対応も作りました。
viper.AutomaticEnv() // read in environment variables that match
viper.SetEnvPrefix("twsla")
viper.BindEnv("datastore")
のように追加すれば、
TWSLA_DATASTORE=/tmp/twsla.db
のように環境変数でデータストアのパスを指定できるようになりました。
本題です。
を使ってTWSLAのグラフをターミナル内に表示する機能の追加です。
思ったより簡単にできました。
これまで、画像ファイルをオープンしていた処理を
func openChartSixel(path string) string {
fp, err := os.Open(path)
if err != nil {
return ""
}
img, _, err := image.Decode(fp)
if err != nil {
return ""
}
var buf bytes.Buffer
sixel.NewEncoder(&buf).Encode(img)
return buf.String()
}
という関数でsixelの画像文字列に変えて表示すだけでOKでした。

環境変数かパラメータでsixelを指定した時だけ、この方法で表示するようにしました。
もう少し、修正したい部分があります。
明日に続く
いいなと思ったら応援しよう!
