ohmyzsh/plugins/gcloud/gcloud.plugin.zsh
Ian Chesal 6cfaa07627 Add gcloud plugin (#8144)
* A gcloud plugin

This PR addresses issue #6205

This adds support for loading completion for the Google Cloud SDK
command line tools. It searches the known paths for an SDK and loads the
provided completion if it is found. Users can supply a custom location
for the SDK by setting `CLOUDSDK_HOME` in their `zshrc` before loading
oh-my-zsh plugins.

* Canoncial zsh and some safe guards

Based on a PR review from mcornella. All off this has now been tested
on the following variants:

  - macOS 10.14.6 - Homebrew
  - macOS 10.14.6 - Custom install
  - Ubuntu 16.04.6 LTS - apt install
  - Ubuntu 18.04.3 LTS - apt install
  - Ubuntu 18.04.3 LTS - snap classic install
  - CentOS 7 - yum install
2019-09-20 13:58:35 +02:00

32 lines
969 B
Bash

#####################################################
# gcloud plugin for oh-my-zsh #
# Author: Ian Chesal (github.com/ianchesal) #
#####################################################
if [[ -z "${CLOUDSDK_HOME}" ]]; then
search_locations=(
"$HOME/google-cloud-sdk"
"/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk"
"/usr/share/google-cloud-sdk"
"/snap/google-cloud-sdk/current"
"/usr/lib64/google-cloud-sdk/"
)
for gcloud_sdk_location in $search_locations; do
if [[ -d "${gcloud_sdk_location}" ]]; then
CLOUDSDK_HOME="${gcloud_sdk_location}"
break
fi
done
fi
if (( ${+CLOUDSDK_HOME} )); then
if (( ! $+commands[gcloud] )); then
# Only source this if GCloud isn't already on the path
if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then
source "${CLOUDSDK_HOME}/path.zsh.inc"
fi
fi
source "${CLOUDSDK_HOME}/completion.zsh.inc"
export CLOUDSDK_HOME
fi