Sunday, August 15, 2010

a way to specify a ruby with rvm for new windows of a screen session

$ rvm use --default ruby-1.9.2

の状態で
$ rvm use system

で利用する ruby を切り替えても screen の window の環境は新規のシェルセッションになるので ruby-1.9.2 に戻ってしまう。
screen が新規 window を作成するときに利用する shell のスタートアップスクリプトが実行され初期化されてしまうので当たり前といえば当たり前。

そこで、シェルスクリプトの source rvm の直後に以下のおまじないを書いて、
if [[ -n "$rvm_use" ]] ; then
rvm use $rvm_use
fi


環境変数 rvm_use を与えて screen を起動すると、
rvm_use=system screen

screen の新規 window が作成されるたびに rvm use system が実行されるようになります。

もっといい方法があるかと思うので、知ってる人は教えてください。
RVM inside Screen に描いてあることは、 screen の新規 window で script/rvm が読み込まれるようにするだけだったので残念。