Dentro do contexto de uma tarefa rake, estou tentando cd
em um diretório irmão do qual gostaria de invocar outra tarefa rake. No entanto, parece que o gemset para o segundo diretório não está carregado. A estrutura de diretórios de um nível superior é semelhante a:
2.2.1@DirOne
- 2.2.1 Gems ...
2.2.3@DirTwo
- 2.2.3 Gems ...
Quando executado no contexto de DirOne
, o rake tenta cd
em DirTwo
para executar uma tarefa de rake específica para DirTwo
. No entanto, o rake é anulado na segunda tarefa do rake, uma vez que se queixa do seguinte erro:
LoadError: cannot load such file -- ci/reporter/rake/rspec
No erro, ci/reporter/rake/rspec
é uma gem que pertence a 2.2.3@DirTwo
. Pode haver uma maneira de executar o seguinte no contexto de DirOne
em uma tarefa de rake?
cd ../DirTwo && rvm use 2.2.3@DirTwo && rake something_specific_to_DirTwo
O que eu tentei
Usando IO.popen(source ./script_to_run_the_above.sh)
e IO.popen(#{above_command} 2>&1
para despejar a saída. Eu também tentei usar FileUtils.cd
para criar um bloco para executar o script acima dentro do contexto do cd
filepath, mas tudo isso não faz nada (sem erro), ou lança o LoadError
.
Pensamentos
Pode ser porque não estou executando dentro do contexto de um shell de login / interativo? Eu tentei /bin/bash --login
, mas parece que não fez diferença.