Graph::Easy => Graphvizを試してみた

#perl #graph

ペパボの先輩のブログからGraph-Easyという便利ツールを知ったので自分も触ってみた。

Graph-Easyの基本的な使い方

先輩のブログに書いてあるのだけれども、一応自分でも実行した内容を記載する。

Macで入手

cpanmから以下のように入手可能。

$ cpanm Graph::Easy

入力

以下のようなgraph.txtを用意する。

[ local ] - ssh -> [ linux server ]

出力

graph.txtに対してgraph-easyを実行する。

$ graph-easy graph.txt

すると以下のようなアスキーアートが出力される。

+-------+  ssh   +--------------+
| local | -----> | linux server |
+-------+        +--------------+

番外

ちなみに、以下のようにハイフンの数を増やすと、何故かちょっと崩れた感じになった。

Input:
[ local ] --- ssh ---> [ linux server ]

Output:
+-------+  ssh    +--------------+
| local | ..-..-> | linux server |
+-------+         +--------------+

Graphvizで画像出力

ドキュメントを見てみると、なんとGraphvizのdot形式の入出力に対応しているらしい。

以下のように--dotあるいは--as_dotとオプションをつけるとdot形式のファイルが出力されるので、それをそのままdotコマンドに引き渡してsvg画像を出力してみた。

$ graph-easy graph.txt --dot | dot -Tsvg -o graph.svg

これは便利。

txt形式で簡単にファイルを保存しておけば、あとはGraph-Easyを利用するだけでお手軽にアスキーアートや画像を出力できるようになる。

サーバ構成図のような、ちょっとしたドキュメント作成の時に使えるかもしれない。