2011-11-16 43 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

没错。我完成了比较三种环境中命令的输出 –