Rails プロジェクトセットアップスクリプト svk 版
最近 svk と rails を使い始め、よくわからないままにあれこれ試行錯誤している感じです。とりあえず、「ξ*゜ー゜)ξ { 遅レス。 - Railsプロジェクト セットアップ スクリプト」を svk 用に書のき替えて、以下のようなセットアップスクリプトを作ってみたりしました。
$ svk_rails app_name depot_path [rails_opt]
みたいな感じで実行します。最後の rails_opt ってのは rails コマンドにわたすオプション。オプションが最後にくるとかなんかかっこわるい感じだけど、あんまり使わなさそうなので問題ないかな、とか思ったり。。。ただし、-r で Ruby のパスを指定するとこだけ、デフォルトの /usr/bin/ruby18 ってのを、スクリプト内に決め打ちで -r '/usr/bin/env ruby' にしてあります。
app_name が myapp, depot_path が //mirror/myrepos だとすると、流れ的には
- //mirror/myrepos/myapp/{trunk, brahches, tags} を作成
- //mirror/myrepos/myapp/trunk から //myapp を作成
- //myapp から、カレントディレクトリ直下の myapp に co
- rails コマンドでファイル生成
- 生成されたファイルを追加して ci
- log/*.log, config/database.yml に ignore を propset
- 以上を、//mirror/myrepos/myapp/trunk に push
てな感じ。svk とかいまだに全然よくわかってないので、変なことしてる雰囲気が満載。まぁ、今後、適当にアプリ作りながら改善していこうかなってな所存。
svk_rails
#!/bin/sh RAILS='ruby /usr/bin/rails' RUBY_PATH='/usr/bin/env ruby' APP_NAME=$1 DEPOT=$2/$APP_NAME shift 2 RAILS_OPT=$@ svk mkdir $DEPOT -m "create a depot for $APP_NAME" svk mkdir $DEPOT/trunk -m "create a trunk directory for $APP_NAME" svk mkdir $DEPOT/branches -m "create a blanches directory for $APP_NAME" svk mkdir $DEPOT/tags -m "create a tags directory for $APP_NAME" svk cp $DEPOT/trunk //$APP_NAME -m "create a local branch for $APP_NAME" svk co //$APP_NAME $APP_NAME $RAILS -r "$RUBY_PATH" $RAILS_OPT $APP_NAME cd $APP_NAME svk add * svk ci -m "import auto-generated files for $APP_NAME into $DEPOT" svk up svk rm log/* svk ci -m "delete logfiles for $APP_NAME" svk up svk propset svn:ignore "*.log" log svk ci -m "ignore log/*.log for $APP_NAME" svk up svk mv config/database.yml config/database.tmp.yml svk ci -m 'move database.yml for $APP_NAME' svk up svk propset svn:ignore "database.yml" config svk ci -m 'ignore database.yml for $APP_NAME' svk up cp config/database.tmp.yml config/database.yml svk rm config/database.tmp.yml svk ci -m 'delete database.tmp.yml for $APP_NAME' svk up svk propset svn:ignore "*" tmp/cache/ svk propset svn:ignore "*" tmp/sessions/ svk propset svn:ignore "*" tmp/sockets/ svk ci -m "ignore tmp/*/* for $APP_NAME" svk up svk push --verbatim cd ../