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")