Зависимый от платформы Rakefile - PullRequest
0 голосов
/ 16 ноября 2011

Я пишу Rakefile, который в какой-то момент запускает Jetty. Rakefile должен быть независимым от платформы, чтобы я мог использовать его в своих окнах и моем mac. Для запуска Jetty предусмотрены два сценария: jetty.sh и jetty-cygwin.sh в зависимости от используемой системы.

В скрипте bash я знаю, что есть OSTYPE, который я могу использовать, чтобы определить, нахожусь ли я под win или под mac, но он недоступен в ENV в ruby. Есть ли способ сделать нечто подобное в Rakefile?

Большое спасибо заранее

1 Ответ

0 голосов
/ 18 октября 2012

Вы пробовали 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;)).

...