「美」はどこにでも存在します。しかし私たちは日々忙しく対象に対する観察眼を失っていて、容易にはそれを発見することができないのです。

あなたが日頃向き合っているコンピュータの中には「ファイルシステム」があります。ファイルシステムは、あなたが作ったデータやプログラムを格納するファイル群にヒエラルキーを与え全体構造の中に組み込みます。個々のファイルはディレクトリノードによって木々の枝のように細かく枝分かれし、同じ構造をもって更に深く広く成長していきます。つまりファイルシステムは無機質な再帰的構造を生成します。

一方で、私たちは特定のディレクトリ構造やファイル群に名前を付することによって、そこに人間的な意味付けをすることができます。名前は個々のファイルに役割を与え命を吹き込みます。関連するファイルには関連する名前が与えられ、それらが相互作用することが期待されます。つまりファイルシステムは有機的・意味的構造を生成します。

そしてこのような一見排他的な二面性が一つのシステムの中に同居することよって、そこに「美」というものが見えてくるのです…。

なんてね :-)

さて。

ディレクトリ構造をGraphvizで視覚化するためのツール「DirFriend」をバージョンアップしましたのでお知らせします（ver0.1.1）。

DirFriend自体の説明については前回の記事を参照してください。

DirFriendに含まれる dir_friend dot コマンドは、対象ディレクトリの構造を視覚表現するDOTファイルを生成します。dotコマンドはGraphvizの属性に係る色々なオプションを取ることができ、それによって多彩なグラフを描画できます。

でも、Graphvizの属性値って大量すぎて…。

「コマンド実行の度に一々設定するのめんどくね？」

…です…よね…。

という訳で…。

version0.1.1では、設定ファイルにお気に入りのテーマをセットしておいて、呼べるようにしました（誰得）。

任意のディレクトリ構造を作って試してみます。

tinytoolディレクトリに対し dot サブコマンドを適用します。

カレントディレクトリに a.dot というファイルが生成され、MacであればGraphvizが立ち上がって以下のようなグラフが表示されます(thanks to @rosylilly)。

（クリックで拡大）

この挙動は以前のバージョンと同じですが、最初の起動でターミナルの出力にあるようにホームディレクトリ以下に、 .dirfriend/config.yaml というテーマ設定ファイルが生成されます。

そして次回起動時からはこの設定ファイルを読み込んで、DOTファイルを生成するようになります。

もう一度 dot コマンドを実行してみます。

config.yamlの内容に従って、生成されるDOTは以下のようになります。

（クリックで拡大）

任意のオプションを追加することで設定の一部を上書きすることもできます。

（クリックで拡大）

config.yaml の内容を見てみます。