Вот как я обнаруживаю git в ruby:
`which git 2>/dev/null` and $?.success?
Однако это не кроссплатформенный. -unix системы или системы без команды which
(хотя я не уверен, что это такое).
Мне нужен способ обнаружения git, который удовлетворяет этим условиям:
] Обновление: решение состоит в том, чтобы полностью отказаться от использования , который
и перенаправить вывод на NUL
в Windows.
require 'rbconfig'
void = RbConfig::CONFIG['host_os'] =~ /msdos|mswin|djgpp|mingw/ ? 'NUL' : '/dev/null'
system "git --version >>#{void} 2>&1"
Команда system
возвращает истину в случае успеха и ложь в случае неудачи, экономя нам путь к $ ?. success?
, который необходим при использовании обратных кавычек.