Saya mencoba memasukkan tfenv dalam konfigurasi dotfiles saya dan cara yang sama saya lakukan dengan pyenv, rbenv dll. Saya malas memuat pembungkus itu, jadi init
dieksekusi pada panggilan pertama, berikut tampilannya di shell:
% 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 $@
}
Fungsi ini dibuat secara otomatis menggunakan pembungkus di https://github.com/z0rc/dotfiles/blob/master/zsh/rc.d/15_rbpynodlua_env.zsh#L5 -L16. Ini juga mendefinisikan dir *ENV_ROOT
sehingga pembungkus itu tidak akan membuat dotdir tingkat atas di $HOME
(Catatan tambahan: XDG Base Dir Spec lebih dari satu dekade, tetapi beberapa aplikasi masih tidak' tidak menghormatinya, malu)
Jadi saya mencoba mengaktifkan tfenv
di sini hanya untuk menemukan bahwa itu tidak menangani TFENV_ROOT
dengan cara yang sama seperti pembungkus lainnya. Pembungkus lain menggunakan folder *ENV_ROOT
untuk menyimpan shim, plugin, dan cache. tfenv
secara harfiah menggunakannya sebagai indikator di mana ia diinstal, yang tidak masuk akal karena ini tetap terdeteksi secara otomatis. Juga tidak ada perintah tfenv init
.
Saya menghargai bahwa Anda mencoba untuk menyederhanakan instalasi, tetapi dengan cara yang sama Anda memutuskan kontrak kompatibilitas dengan pembungkus lain.
Selain itu tidak ada tfenv shell
untuk mengaktifkan versi terraform tertentu untuk sesi shell saat ini.
Yang terpenting, tfenv
tidak boleh menimpa /usr/local/bin/terraform
atau bertentangan dengan Terraform, tetapi, sebaliknya, mainkan dengan $PATH
seperti yang dilakukan orang lain.
Memiliki fitur-fitur ini akan menjadikannya alat yang berguna saat menggunakannya dengan sesuatu seperti anyenv
.
Saya membuat cabang yang melakukan apa yang dilakukan rbenv init
(dalam bentuk yang sangat sederhana).
https://github.com/jalcine/tfenv/tree/add-init-command
Beri tahu saya apa lagi yang harus masuk ke sana.
Diselesaikan oleh #240
Komentar yang paling membantu
Yang terpenting,
tfenv
tidak boleh menimpa/usr/local/bin/terraform
atau bertentangan dengan Terraform, tetapi, sebaliknya, mainkan dengan$PATH
seperti yang dilakukan orang lain.