RVM after_cd Крюк - PullRequest
       3

RVM after_cd Крюк

4 голосов
/ 03 октября 2011

Я пытаюсь использовать RVM-хуки для запуска команды после того, как я cd в каталог с моим приложением rails.

Содержимое моего ~/.rvm/hooks/after_cd:

echo "Now using $rvm_ruby_string"

Содержимое моего ~/.rvm/hooks/after_use:

echo "Now using $rvm_ruby_string"

Когда я делаю $rmv use 1.9.2, я вижу свое эхо, но когда я cd в корневой каталог rails для моего приложения, я не получаю никакого эхо.

Я неправильно использую after_cd хук?

$rvm -v говорит:

rvm 1.0.8 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]

1 Ответ

4 голосов
/ 13 ноября 2013

Сначала вам нужно понять, как rvm перезаписывает команду cd по умолчанию вашей системы.

Вот ответ объясняет это хорошо.

Короче говоря, rvm определяет такую ​​функцию в .rvm / script / cd

cd(){
  builtin cd $*                    #run system cd
  source after_cd_hooks            #run hook scripts
}

И вы можете найти эту строку, если посмотрите, как определен этот cd ().

__rvm_project_rvmrc && __rvm_after_cd || true

__rvm_project_rvmrc - это функция, позволяющая проверить, существует ли .rvmrc в каталоге, в который вы переходите.

Таким образом, скрипты хуков будут получены только при наличии .rvmrc в корневом каталоге вашего проекта.

Так что создайте свой .rvmrc и попробуйте CD снова. Удачи!

> /path/to/app/root/.rvmrc
cd /path/to/app/root

Моя версия rvm:

rvm -v

rvm 1.23.14 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
...