2012年07月18日

リモートのgitなリポジトリのRails3なアプリのER図を出力するの一応作ったよー

なんとなく俺特になりそうだったので リモートのgitのリポジトリ(githubとかいいよね)に置いている Rails3なアプリのER図を出力するshell script書いてみたよー。 ちなみにMacで動作させる前提。

まず事前に

$ brew install graphviz

という形でgraphvizを放り込みます。 これが多分画像生成関連の何か(ちゃんと調べてない)。

そして

$ gem install railroady

してrailroadyというgemを放り込んでおきます。

これだけで目的の8割ぐらい終わってます。

次にこんなコードを適当にerd.shとかいう名前で保存しておきます。

#!/bin/sh

tmpdir=`uuidgen`
rep=$1

cd /tmp
mkdir $tmpdir
cd $tmpdir
echo "Cloning project..."
git clone $rep > /dev/null 2>&1

dir=`echo $rep | sed -e 's/.*\/\([^\/]*\)\.git$/\\1/'`
cd $dir

echo 'gem "activerecord-nulldb-adapter", :git => "git://github.com/nulldb/nulldb.git"' >> Gemfile
echo "Installing gems..."
bundle install > /dev/null 2>&1

echo "development:\n  adapter: nulldb" > config/database.yml

echo "Generating ER diagram..."
railroady -M | neato -Tpng > models.png
open models.png
sleep 2
cd /tmp
rm -rf /tmp/$tmpdir

そしておもむろに

$ sh erd.sh git://github.com/jpwynn/plupload-rails3-sample-app-heroku.git

とかやると指定したリポジトリのRails3アプリケーションのER図がPreview.appで開かれます。 開いた後にファイルとかはごそっと消してます。

"rake db:migrate" とかそういうのがだるかったので activerecord-nulldb-adapter ってのを利用してます。

ってのを作ったんだけど、 まあ、様々な条件でコケる(rspecとかmongoid使ってるとコケるっぽい)のでクソいけど飽きた。

タグ:ER図 ruby Rails SH git
posted by 麦汁 at 23:48 | Comment(0) | TrackBack(0) | git | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。