Tentei incluir tfenv na minha configuração de dotfiles e da mesma forma que faço com pyenv, init
etc.
% type -f rbenv
rbenv () {
unset -f rbenv
export RBENV_ROOT=$XDG_DATA_HOME/rbenv
PATH=$DOTFILES/rbenv/rbenv/bin:$PATH
eval "$(command rbenv init -)"
rbenv $@
}
Esta função é gerada automaticamente usando wrapper em https://github.com/z0rc/dotfiles/blob/master/zsh/rc.d/15_rbpynodlua_env.zsh#L5 -L16. Também define *ENV_ROOT
dir para que esses wrappers não criem dotdir de nível superior em $HOME
(Nota: XDG Base Dir Spec tem mais de uma década, mas alguns aplicativos ainda não t honrá-lo, vergonha)
Então eu tentei habilitar tfenv
aqui apenas para descobrir que ele não lida com TFENV_ROOT
da mesma forma que outros wrappers. Outros wrappers usam a pasta *ENV_ROOT
para armazenar shims, plugins e cache. tfenv
literalmente o usa como indicador de onde está instalado, o que não faz muito sentido, pois isso é detectado automaticamente de qualquer maneira. Também não há comando tfenv init
.
Eu aprecio que você tentou simplificar a instalação, mas da mesma forma você quebrou o contrato de compatibilidade com outros wrappers.
Além disso, não há tfenv shell
para habilitar determinada versão do terraform para a sessão atual do shell.
Mais importante, tfenv
não deve substituir /usr/local/bin/terraform
ou entrar em conflito com o Terraform propriamente dito, mas sim jogar com $PATH
como todo mundo faz.
Ter esses recursos o tornaria uma ferramenta útil ao usá-lo com algo como anyenv
.
Eu fiz um branch que faz o que rbenv init
faz (de uma forma super simples).
https://github.com/jalcine/tfenv/tree/add-init-command
Deixe-me saber o que mais deve ir lá.
Resolvido por #240
Comentários muito úteis
Mais importante,
tfenv
não deve substituir/usr/local/bin/terraform
ou entrar em conflito com o Terraform propriamente dito, mas sim jogar com$PATH
como todo mundo faz.