我正在与多个开发人员一起开发一个项目,目前我们必须根据我们正在部署的计算机更改 deploy.rb 脚本中的变量。
我们如何根据我们所在的计算机设置用户名和路径/到/项目?
我们都在 osx 上运行。
例子
if osx logged in user == "jeff"
set :user, "jeff's username'
else if ...
set :user, 'blah'
end
我如何在 rails/capistrano/osx 中做到这一点?
我正在与多个开发人员一起开发一个项目,目前我们必须根据我们正在部署的计算机更改 deploy.rb 脚本中的变量。
我们如何根据我们所在的计算机设置用户名和路径/到/项目?
我们都在 osx 上运行。
例子
if osx logged in user == "jeff"
set :user, "jeff's username'
else if ...
set :user, 'blah'
end
我如何在 rails/capistrano/osx 中做到这一点?
os/x shell 设置了一个$USER
具有登录用户登录名的环境变量。您可以ENV['USER']
在 cap 文件中引用它
该whoami
命令应该在大多数 Unix 系统上可用,因此以下命令也应该在 Linux 等上工作:
if `whoami` == "jeff"
set :user, "jeff's username'
elsif ...
set :user, 'blah'
end
这是环境变量派上用场的地方。
set :user, ENV['USERNAME']
有很多方法可以设置它。您可以直接在 shell 中使用
export USERNAME=blah
但是对于一个更清洁的、按项目的解决方案,我喜欢dotenv
gem。:development
在您的 组中启用此功能后Gemfile
,当 Rails 加载时,它将导出.env
应用程序根目录中特殊文件的每一行作为环境变量。
USERNAME=blah