3

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

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

我们都在 osx 上运行。

例子

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

我如何在 rails/capistrano/osx 中做到这一点?

4

3 回答 3

4

os/x shell 设置了一个$USER具有登录用户登录名的环境变量。您可以ENV['USER']在 cap 文件中引用它

于 2013-04-05T15:18:08.740 回答
1

whoami命令应该在大多数 Unix 系统上可用,因此以下命令也应该在 Linux 等上工作:

if `whoami` == "jeff"
  set :user, "jeff's username'
elsif ...
  set :user, 'blah'
end
于 2013-04-05T15:19:25.083 回答
1

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

set :user, ENV['USERNAME']

有很多方法可以设置它。您可以直接在 shell 中使用

export USERNAME=blah

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

USERNAME=blah
于 2013-04-05T15:19:39.583 回答