gcloud.plugin.zsh
1569 bytes
1#####################################################
2# gcloud plugin for oh-my-zsh #
3# Author: Ian Chesal (github.com/ianchesal) #
4#####################################################
5
6if [[ -z "${CLOUDSDK_HOME}" ]]; then
7 search_locations=(
8 "$HOME/google-cloud-sdk"
9 "/usr/local/share/google-cloud-sdk"
10 "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk"
11 "/opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk"
12 "/opt/homebrew/share/google-cloud-sdk"
13 "/usr/share/google-cloud-sdk"
14 "/snap/google-cloud-sdk/current"
15 "/snap/google-cloud-cli/current"
16 "/usr/lib/google-cloud-sdk"
17 "/usr/lib64/google-cloud-sdk"
18 "/opt/google-cloud-sdk"
19 "/opt/google-cloud-cli"
20 "/opt/local/libexec/google-cloud-sdk"
21 "$HOME/.asdf/installs/gcloud/*/"
22 )
23
24 for gcloud_sdk_location in $search_locations; do
25 if [[ -d "${gcloud_sdk_location}" ]]; then
26 CLOUDSDK_HOME="${gcloud_sdk_location}"
27 break
28 fi
29 done
30 unset search_locations gcloud_sdk_location
31fi
32
33if (( ${+CLOUDSDK_HOME} )); then
34 # Source path file
35 if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then
36 source "${CLOUDSDK_HOME}/path.zsh.inc"
37 fi
38
39 # Look for completion file in different paths
40 for comp_file (
41 "${CLOUDSDK_HOME}/completion.zsh.inc" # default location
42 "/usr/share/google-cloud-sdk/completion.zsh.inc" # apt-based location
43 ); do
44 if [[ -f "${comp_file}" ]]; then
45 source "${comp_file}"
46 break
47 fi
48 done
49 unset comp_file
50
51 export CLOUDSDK_HOME
52fi