Para responder diretamente à sua pergunta: dê uma olhada em ondir . Eu não usei isso pessoalmente, mas parece se encaixar no seu caso de uso.
ondir is a small program to automate tasks specific to certain directories. It works by executing scripts in directories when you enter and leave them.
Para ruminar por um momento, embora ...
Trocar as versões do pacote ao entrar / sair de diretórios através do shell é, bem, arriscado por várias razões. (Para começar, pense em duas sessões de terminal, cada uma em seu próprio diretório.)
O que você está pedindo (por hom-dir homebrew config) é efetivamente uma máquina virtual ou container, já que vai além de "virtualizar" uma linguagem (ex: Ruby via rbenv
, o Python via virtualenv
') e, em vez disso, é para todos os pacotes do sistema. Você deve considerar a criação de uma caixa Vagrant para que seus projetos os isolem adequadamente do seu Mac e gerenciem melhor suas dependências.
De qualquer forma, voltemos ao seu problema ...
O PhantomJS é uma ferramenta autônoma que, por acaso, está disponível como um binário vinculado estaticamente . Podemos usar isso para nossa vantagem. Em vez de trocar as versões do PhantomJS via brew switch
, basta fazer o download de cada versão vinculada estaticamente, colocar o binário em ~/bin
, nomeá-lo adequadamente (por exemplo, phantomjs-1.9.8
) e ajustar seus scripts para chamar a versão desejada. Se você não puder ajustar os scripts, precisará criar outro esquema (links simbólicos específicos do projeto, etc.)
Ou, como sugerido na sua consulta no GitHub , você também pode ajustar seu PATH
, seja por meio de ondir
ou um script de contorno em torno de qualquer unidade phantomjs
.
(Sim, para a segunda vez em uma noite , apontei alguém para uma ferramenta que não usei pessoalmente.)