2

我有一个项目,它有 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只允许我rubypre_window. 这意味着我仍然必须每次安装 rvm ect。我目前在我的tmuxinator配置中拥有的是:

name: work
root: ~/org/

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

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

请询问是否需要其他信息,我会提供。
感谢您的关注!

4

0 回答 0