railsの初期環境構築用のスクリプト

作業用ディレクトリは、~/work/プロジェクト名
svnリポジトリは、~/svnrepos/プロジェクト名
に補完する前提です。
rails用のリポジトリを作って、railsコマンドでの初期環境生成、
svnへのインポート、それに
いくつか必須のプラグインのインストールまで。



以下のソースをrails_start等の名前で保存し、
rails_start prj名
で実行する。

#!/bin/ruby -Ku
# $Id$

prjName    = ARGV.shift
svnRepoDir = ENV["HOME"] + "/svnrepos/#{prjName}"
workDir    = ENV["HOME"] + "/work/#{prjName}"

class DoCmd
  def exec(execString)
    system(execString)
    if $? != 0
      p execString + " error."
      exit 1
    else
      p execString + " done."
    end
  end
end

doCmd = DoCmd.new

doCmd.exec("mkdir #{workDir} #{workDir}/trunk #{workDir}/tags #{workDir}/branches")
doCmd.exec("svnadmin create #{svnRepoDir} --fs-type fsfs")
doCmd.exec("rails #{workDir}/trunk -f")
doCmd.exec("svn import #{workDir} file://#{svnRepoDir} -m '初期インポート'")
doCmd.exec("rm -rf #{workDir}")
doCmd.exec("svn co file://#{svnRepoDir} #{workDir}")

doCmd.exec("svn move #{workDir}/trunk/config/database.yml #{workDir}/trunk/config/database.example.yml")
doCmd.exec("cp #{workDir}/trunk/config/database.example.yml #{workDir}/trunk/config/database.yml")
doCmd.exec("svn propset svn:ignore '*.log' #{workDir}/trunk/log/")
doCmd.exec("svn propset svn:ignore '*' #{workDir}/trunk/tmp")
doCmd.exec("svn propset svn:ignore '#{workDir}/trunk/database.yml' #{workDir}/trunk/config/")
doCmd.exec("svn ci #{workDir} -m '初期設定'")
doCmd.exec("svn update #{workDir}")

# ---------- plugin install
Dir.chdir(workDir + "/trunk")
doCmd.exec("ruby #{workDir}/trunk/script/plugin install http://railsmyadmin.googlecode.com/svn/trunk/my_admin/")
doCmd.exec("ruby #{workDir}/trunk/script/plugin install http://topfunky.net/svn/plugins/ar_fixtures")
doCmd.exec("ruby #{workDir}/trunk/script/plugin install http://yaml-waml.googlecode.com/svn/trunk/yaml_waml/trunk/")

doCmd.exec("ruby #{workDir}/trunk/script/generate my_admin")