Как вызвать chruby из сценария ruby

Я пишу скрипт ruby, чтобы загрузить новый компьютер MacBook. Я установил chruby а также ruby-install через доморощенный. Если я позвоню chruby из командной строки это работает.

$ chruby
* ruby-2.4.1

Но если я назову это из сценария ruby, то так.

def failing_function
  `chruby`
end

failing_function

Я получаю эту ошибку

 No such file or directory - chruby (Errno::ENOENT)

В качестве теста я попробовал это

def successful_function
    `ruby-install`
end

successful_function

И я получаю такой же вывод для ruby-install в сценарии, как я делаю из командной строки.

У кого-нибудь есть идеи, что я делаю не так?

1 ответ

Решение

После более глубокого изучения выясняется, что chruby это не правильный двоичный файл, а функция bash, которая добавляется в среду путем вызова source /usr/local/share/chruby/chruby.sh, Я провел быстрый тест, запустив echo $SHELL в консоли ruby, и это показывало, что она использует мою оболочку zsh, поэтому не уверен, почему не был загружен полный конфиг. В любом случае, я получил его на работу, сделав это

def successful_function
  `source /usr/local/share/chruby/chruby.sh && chruby`
end

successful_function
Другие вопросы по тегам