diff --git a/zsh/google-cloud.zsh b/zsh/google-cloud.zsh index b6fa161..c475550 100644 --- a/zsh/google-cloud.zsh +++ b/zsh/google-cloud.zsh @@ -6,6 +6,19 @@ if [ -f '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.i source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc' fi -if [ -f '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc' ]; then - source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc' +# Lazy load gcloud shell completion on first use. +if command-exists gcloud; then + _python_argcomplete() { + load-gcloud-completion + _python_argcomplete "$@" + } + + compctl -K _python_argcomplete gcloud + + load-gcloud-completion() { + unset -f load-gcloud-completion _python_argcomplete + if [ -f '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc' ]; then + source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc' + fi + } fi