GruntでGraphVizの画像生成を自動化する
GruntはJavaScriptやCSSのminifyや結合、テストなどだけではなく、CoffeeScript/LESSのコンパイルなどにも使えます。今回はGraphVizのdotファイルから画像ファイルを生成してみました。
使ったのはgrunt-graphviz。
本当は、ソースコードからdotファイルも生成したいんですが、こちらはまだ調べられていません。これができれば楽なんですが。
何はともあれインストール。
$ npm install grunt-graphviz --save-dev
まず必要なのは、モジュールをロードする事。
grunt.loadNpmTasks('grunt-graphviz');
次にタスクを設定します。
graphviz: { target1: { files: { 'dest/target1.png': 'source/target1.dot', } }, target2: { files: { 'dest/target2.png': 'source/target2.dot', } } },
最後にgrunt watch
コマンドで監視する設定を追加します。生成処理はそれなりに重いので、監視対象と実行するタスクを小さく分けてます。
watch: { graphviz_target1: { files: ['source/target1.dot'], tasks: ['graphviz:target1'] }, graphviz_target2: { files: ['source/target2.dot'], tasks: ['graphviz:target2'] } }
あとはgrunt watch
コマンドで監視すればOK。直接実行したければ、以下のようにタスクごとに実行すればOKです。
$ grunt graphviz Running "graphviz:graphviz_target1" (graphviz) task Compiling source/target1.dot -> dest/target1.png Running "graphviz:graphviz_target2" (graphviz) task Compiling source/target2.dot -> dest/target2.png Done, without errors. $ grunt graphviz:target2 Running "graphviz:graphviz_target2" (graphviz) task Compiling source/target2.dot -> dest/target2.png Done, without errors.