使用tmuxinator运行具有不同版本的多个rails应用程序

时间:2016-05-12 17:00:50

标签: ruby-on-rails shell tmux iterm tmuxinator

我有一个包含3个rails应用程序的项目,所有这些应用程序都运行在不同的ruby/rails版本上。我正在尝试设置一个脚本来启动所有3个项目。我刚开始编写下面的shell脚本:

mysql.server start
echo first argument: $1

open -a /Applications/Utilities/Terminal.app redis-server
open -a /Applications/Utilities/Terminal.app /Users/acumendigital/org/shell_scripts/application1.sh --args $1
open -a /Applications/Utilities/Terminal.app /Users/acumendigital/org/shell_scripts/application2.sh --args $1

将接受一个参数(当前版本的分支)并运行以下命令:

cd /Users/acumendigital/org/application1
git fetch origin $1
git stash
git checkout $1
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then

  # First try to load from a user install
  source "$HOME/.rvm/scripts/rvm"

elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then

  # Then try to load from a root install
  source "/usr/local/rvm/scripts/rvm"

else

  printf "ERROR: An RVM installation was not found.\n"

fi
rvm install ruby-1.9.3-p551
rvm use ruby-1.9.3-p551
gem install bundler
bundle install
rake db:migrate
bundle exec rails s -p 3001

问题是当我像这样运行这个进程时,它不是在shell中运行所以我每次都必须安装rvm和ruby版本。这消除了脚本设计创建的时间节省。我能够让tmuxinator运行相同的脚本,但看起来tmuxinator只允许我在ruby中设置一个pre_window版本。这意味着我每次都必须安装rvm等。我目前在tmuxinator配置中的内容是:

name: work
root: ~/org/

windows:
  - application1: cd shell_scripts && ./application1.sh
  - application2: cd shell_scripts && ./application2.sh 

将这些脚本作为shell会话运行但使用不同版本的ruby的最佳方法是什么?

请询问是否需要其他信息,我会提供 谢谢你的期待!

0 个答案:

没有答案