diff --git a/home/dotfiles/zshrc b/home/dotfiles/zshrc index 5e4e6de..f6cf99d 100644 --- a/home/dotfiles/zshrc +++ b/home/dotfiles/zshrc @@ -19,6 +19,7 @@ ZSH_ALIAS=${ZSH_ALIAS:-1} ZSH_COMPAT_BASH_COMPLETION=${ZSH_COMPAT_BASH_COMPLETION:-1} ZSH_CUSTOM=${ZSH_CUSTOM:-1} ZSH_DEFAULT_TERM=${ZSH_DEFAULT_TERM:-1} +ZSH_GCLOUD_FIXES=${ZSH_GCLOUD_FIXES:=$(when_binary_available gcloud)} ZSH_GPG_PINENTRY_FIX=${ZSH_GPG_PINENTRY_FIX:-1} ZSH_LOGO_LS=${ZSH_LOGL_LS:-$(when_binary_available logo-ls)} ZSH_PIPX=${ZSH_PIPX:-$(when_binary_available pipx)} @@ -166,6 +167,33 @@ if [ $ZSH_SYNTAX_HIGHLIGHTING -gt 0 ]; then fi section_end +# gcloud fixes +section "gcloud fixes" +if [ $ZSH_GCLOUD_FIXES -gt 0 ]; then + log "Overriding gcloud command" + _local_zshrc_ssh_config_needs_cleanup() { + [ ! -f ~/.ssh/config ] || grep -iq '^\s\+IdentityFile' ~/.ssh/config + } + + _local_zshrc_clean_up_ssh_config() { + if [ -f ~/.ssh/config ]; then + # avoid apps such as gcloud referencing their own SSH key, we have our own hardware-backed one, damn it! + sed -i -e 's/^\(\s\+\)IdentityFile/\1# Modified by ~\/.local_zshrc\n\1#IdentityFile/i' ~/.ssh/config + fi + } + + gcloud() { + command gcloud "$@" + } + + if has_binary gke-gcloud-auth-plugin; then + # avoid deprecation warning about gcloud auth by simply using the new plugin + log "Setting USE_GKE_GCLOUD_AUTH_PLUGIN=True to avoid deprecation warning" + USE_GKE_GCLOUD_AUTH_PLUGIN=True + fi +fi +section_end + # symfony cli section "symfony cli" if [ $ZSH_SYMFONY_CLI -gt 0 ]; then