見出し画像

すごいログ分析ツール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を指定した時だけ、この方法で表示するようにしました。
もう少し、修正したい部分があります。

明日に続く



いいなと思ったら応援しよう!

twsnmp
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。