Rails capistrano根据用户登录到计算机设置deploy.rb变量

时间:2013-04-05 15:13:43

标签: ruby-on-rails ruby ruby-on-rails-3 macos capistrano

我正在开发一个包含多个开发人员的项目,目前我们必须根据我们部署的计算机来更改deploy.rb脚本中的变量。

我们如何根据我们使用的计算机设置用户名和路径/项目?

我们都在osx上运行。

实施例

if osx logged in user == "jeff"
  set :user, "jeff's username'
else if ...
  set :user, 'blah'
end

我如何在rails / capistrano / osx中执行此操作?

3 个答案:

答案 0 :(得分:4)

os / x shell设置一个具有登录用户登录名的env变量$USER。您可以在封面文件中将其引用为ENV['USER']

答案 1 :(得分:1)

whoami命令应该可以在大多数Unix系统上使用,因此以下内容也适用于Linux等:

if `whoami` == "jeff"
  set :user, "jeff's username'
elsif ...
  set :user, 'blah'
end

答案 2 :(得分:1)

这是环境变量派上用场的地方。

set :user, ENV['USERNAME']

有很多方法可以设置它。您可以使用

直接在shell中完成
export USERNAME=blah

但是对于更清洁的每个项目解决方案,我更喜欢dotenv gem。在:development的{​​{1}}组中启用此功能后,当加载Rails时,它会将应用程序根目录中特殊Gemfile文件的每一行导出为环境变量。

.env
相关问题