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.