Você pode criar qualquer arquivo que desejar, não precisa ser .zshrc
. Você poderia criar um script env-setup para cada projeto diferente e mantê-lo no diretório do projeto.
Se você deseja iniciar novos shells e fazer com que eles carreguem as configurações de env, você tem algumas opções:
- Sempre inicie seus shells no diretório do projeto e tenha seu
.zshrc
[[ -e ./PROJECT-ENV.sh ]] && source ./PROJECT-ENV.sh
(que você mantém lá). PERIGOSO : iniciar um novo shell em um diretório com conteúdo hostil executa o código que estiver no arquivo de origem. -
.zshrc
:source ~/current-project.sh
. atualizar projeto atual comln -sf "$PWD/THIS-PROJECT-ENV.sh ~/current-project.sh
Se apenas alguns comandos para cada projeto precisarem do conjunto env vars, você pode criar scripts de wrapper para eles que definam as variáveis e, em seguida, deixe seu arquivo shell rc intocado.
Outra ideia: você pode hackear algo no PROMPT_COMMAND, que é executado antes de cada aviso ser exibido. Ou anexe cd / pushd / popd escrevendo funções shell com os nomes que verificam / configuram env vars e então executam builtin cd
.