2011-11-16 40 views
0

我正在寫一個Rake文件說,在某些時候,開始碼頭。 Rakefile應該是平臺獨立的,所以我可以在我的Windows和我的Mac中使用它。要啓動jetty,提供了兩個腳本:jetty.sh和jetty-cygwin.sh,具體取決於您所在的系統。平臺相關的Rakefile

在bash腳本我知道有一個OSTYPE,我可以用它來確定,如果我贏下或Mac下的很,但ENV下是不可用的紅寶石。有沒有辦法在Rakefile中做類似的事情?

感謝很多提前

回答

0

你嘗試ENV['OS']?隨着Windows我得到"Windows_NT" - 抱歉,我無法測試它的Mac。

還有這個常數RUBY_PLATFORM(我得到"i386-mingw32") - 也許你可以用 那個。


另一個想法,如果常量不工作:

命令ver是Windows定義並返回Windows版本。當你在Mac上調用它時會發生什麼?你可以嘗試這樣的:

case %x{ver} 
    when /Microsoft Windows/ 
    puts "I'm running Windows" 
    when /Mac/ 
    puts "I'm running on a Mac" 
    else 
    puts "Unknown?" 
end 

與結果替換/Mac/你(哪怕是一個錯誤信息 - 如果你得到的錯誤,它不是的Windows;))。

+0

沒錯。我完成了比較三種環境中命令的輸出 –