2008年6月20日金曜日

RubyGemでRocket-starterをリリースしました

途中でソースを失ったり、初めてのRubyForge/RubyGem/Gitでスケジュールが遅れましたが、やっとリリースできました。

Rocket-starterとは何かというと、思い立ったときに簡単にrailsアプリを作り始めれるように、定型手段をまとめたもので、具体的には

  • subversionを使うならtrunkとbranchesとtagsフォルダを作る
  • railsコマンドでrailsアプリを作る
  • railsアプリの要らないファイルを削除する
  • railsアプリのtmpとかlogなどのようなものをignoreに指定する
  • 適切なタイミング(数回)でsubversionまたはgitにコミットする
  • いつもインストールするようなプラグインをテキストファイルにまとめておくと、一気にインストールしてくれる
  • RaPTというgemを入れておくと、railsプラグインをそれで管理してくれる このへん参照
  • なるべく楽をするため、configのひな形を編集する事で、設定値を保存しておける

目指したものは、masuidriveさんの言うrails-create-svnなどのスクリプトです。

rails-create-svn自体はmasuidriveさんの個人的なスクリプトで、公開はされていないのですが、考え方的なものにはすごく共感できまして、RubyForgeで似たようなものを探してみました。Railsプロジェクトの初期配置とかデプロイとかがそうですが、開発が止まっていたり、イマイチ求めているものと違ったりして、結局自分で作っちゃった方が早いや、という結論に至りました。

ぶっちゃけ、勢いで作ったのでアラアラですが、せっかく作ったんだから公開しようと思った次第です。

※何を考えていたか最近興味を持っている事 とかRailsプロジェクトの初期配置とかデプロイとか あたりを参照

※詳しくはこちら そんなに急いでどこへ行く

なお、rails-create-dbは、「DB作成はRails 1.2以降、「rake db:create:all」で同じ事ができる」とmasuidriveさんから教えてもらいました。

Rocket-starterの対象としている環境

現状としてはMaxOSX 10.5かLinux系やBSD系です。

svnやgitをコマンドラインから使える必要があります。(逆に、これがないとこのgemはあまり便利ではないと思います)

また、現状、フォルダの区切りをスラッシュとしてハードコードしています。(これは直そうと思えば直せる)

Rocket-starterの使い方

一応RubyForge上にプロジェクトのサイトも作ったんだけど、かなりいいかげんなので、こちらちゃんとしたものを書いておきます。

1.gemをインストールします

これは簡単ですね。

gem install rocketstarter

2.設定ファイルのパスを環境変数にセット

設定ファイル自体はひな形を作ってくれる機能があるので、設定ファイルを保存するパスのみ指定しておく必要があります。

export ROCKET_STARTER_CONF=~/.rocket_starter

とかでいいと思います。

3.設定ファイルのひな形を作ります

rocketstarterに設定ファイルのひな形を吐くようにオプションを付けます。

rocketstarter --init

4.設定ファイルをエディタなどで編集します

vi ~/.rocket_starter

など。

なお、詳しい意味は

--conf=/path/to/conffile

設定ファイルの位置を指定します

--scmtype=[svn|git]

svnかgitかを指定します

--scmuri=URI

svnのリポジトリURIを指定します。ログインが必要であれば頭に"username@"を付けます

--scmpassword=PASSWORD

svnのリポジトリアクセス用のパスワードを指定します

--database=name

railsコマンドへ渡すためのdatabaseパラメータ(mysqlとかsqlite3とか)です

--ignoredatabase

database.ymlをignoreに指定するかどうか。これをセットすればdatabase.yml.originなどと名前を変えてからignoreに指定します。デフォルトはオフです。

--verbose

動作内容の詳細を表示します。デフォルトはオフです。

--sudo

実行にsudoなどが必要な環境の場合、このオプションを指定すれば、各コマンドの頭にsudoを付けます。デフォルトはオフです。

--log

このオプションを指定すれば、verboseに指定したものと同様の出力を--logfileで指定したパスのファイルに書き出します。デフォルトはオフです。

--logfile=/path/to/logfile

ログファイルへのパスです。

--skip-netbeans

このオプションを指定すれば、NetBeansIDEのプロジェクト情報管理用ディレクトリであるnetbeansディレクトリをignoreに指定します。デフォルトはオフ(netbeansディレクトリをignoreに指定する)です。

--listpath=/path/to/listfile

このパスに指定されたファイルの中に、1行につき1プラグインのURLとして、プラグインのリストを作っておけば、rocketstarter実行時の最後にまとめてインストールしてくれます。

--skip-plugins

このオプションを指定すれば、プラグインをインストールしません。デフォルトはオフ(プラグインをインストールする)です。

--rapt

このオプションを指定すれば、プラグインのインストール時にRaPTを使います。もし指定されなければ、script/plugin install を使います。デフォルトはオフ(script/pluginを使う)です。

--externals

このオプションを指定すれば、プラグインのインストール時に-xオプションを付けます。RaPTを使う場合はこのオプションを使わない方が良いでしょう。デフォルトはオフ(-xを付けない)です。

--emulate

デバック/テスト用として、各コマンドを実行しないエミュレーションモードです。デフォルトはオフです。

5.設定ファイルやパラメータのチェック

rocketstarter --check

で現在の設定値をチェックできます。

設定ファイルで指定した値を、コマンドラインのオプションで上書きできているかもチェックできます。

rocketstarter --check --listpath=/path/to/another

など。


6.いよいよ実行

各設定値は既に設定ファイルに書かれてあるはずなので、ここで指定すべきはリポジトリURIやパスワード程度でしょう。

rocketstart project-name --scmuri=svn://example.com/svn/path/to/your/repos --scmpassword=yourpass

エラーが無ければ作られているはずです。

バグ、要望などはフォーラム(英語)またはフォーラム(日本語)またはRubyForgeのプロジェクトページへどうぞ。

0 件のコメント: