2013-04-05 31 views
3

我正在與多個開發人員一起開發一個項目,目前我們必須更改我們的deploy.rb腳本中的變量,具體取決於我們部署的計算機。Rails capistrano根據登錄到計算機的用戶設置deploy.rb變量

根據我們所在的計算機,我們如何設置用戶名和路徑/到/項目?

我們都在osx上運行。

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

我怎麼能做到這一點在軌/ Capistrano的/ OSX?

回答

3

os/x shell設置具有登錄用戶登錄名的env變量$USER。可以引用爲ENV['USER']在你的帽子文件

1

whoami命令應該可以在大多數Unix系統,所以下面也應在Linux上工作,等:

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

這應該是'if/elsif/end'而不是'if/else if/end' – Catfish 2013-04-25 01:53:33

+0

@Catfish:你完全正確,謝謝。 – fresskoma 2013-04-25 09:53:03

0

這是環境變量來派上用場。

set :user, ENV['USERNAME'] 

有很多方法來設置它。您可以直接在外殼與

export USERNAME=blah 

但對於一個更清潔,每個項目的解決方案,我喜歡dotenv寶石做到這一點。在您的Gemfile:development組中啓用此功能後,當Rails加載時,它會將應用程序根目錄中特殊.env文件的每行作爲環境變量導出。

USERNAME=blah