|
2 | 2 |
|
3 | 3 | _myzs:internal:module:initial "$0"
|
4 | 4 |
|
5 |
| -initial() { |
6 |
| - local _gcloud_default_name="${1:-google-cloud-sdk}" |
7 |
| - |
8 |
| - local _gcloud_default1="/opt" # application location |
9 |
| - local _gcloud_default2="/usr/local/Cellar" # homebrew location |
10 |
| - local _gcloud_default3="/usr/local/bin" # legacy location |
11 |
| - |
12 |
| - _myzs:internal:checker:folder-exist "$_gcloud_default1/${_gcloud_default_name}" && |
13 |
| - export __MYZS__DEFAULT_GCLOUD_LOCATION="$_gcloud_default1/${_gcloud_default_name}" |
14 |
| - |
15 |
| - _myzs:internal:checker:folder-exist "$_gcloud_default2/${_gcloud_default_name}" && |
16 |
| - export __MYZS__DEFAULT_GCLOUD_LOCATION="$_gcloud_default2/${_gcloud_default_name}" |
17 |
| - |
18 |
| - _myzs:internal:checker:folder-exist "$_gcloud_default3/${_gcloud_default_name}" && |
19 |
| - export __MYZS__DEFAULT_GCLOUD_LOCATION="$_gcloud_default3/${_gcloud_default_name}" |
20 |
| - |
21 |
| - _myzs:internal:checker:folder-exist "${_gcloud_default_name}" && |
22 |
| - export __MYZS__DEFAULT_GCLOUD_LOCATION="${_gcloud_default_name}" |
23 |
| - |
24 |
| - local current_path="${__MYZS__DEFAULT_GCLOUD_LOCATION}" |
25 |
| - _myzs:internal:checker:command-exist "gcloud" && |
26 |
| - current_path="$(dirname "$(dirname "$(which gcloud)")")" |
27 |
| - |
28 |
| - local gcloud_path="${current_path:-$default_path}" |
29 |
| - |
30 |
| - _myzs:internal:path-push "${gcloud_path}/bin" |
31 |
| - # The next line enables shell command completion for gcloud. |
32 |
| - _myzs:internal:load "Google Cloud SDK path" "${gcloud_path}/completion.$(_myzs:internal:shell).inc" |
| 5 | +_myzs:private:gcloud:initial() { |
| 6 | + local _local_shell _gcloud_fullpath |
| 7 | + _local_shell="$(_myzs:internal:shell)" |
| 8 | + local _path_filename="path.$_local_shell.inc" |
| 9 | + local _completion_filename="completion.$_local_shell.inc" |
| 10 | + local _gcloud_default_name="google-cloud-sdk" |
| 11 | + local _gcloud_paths=( |
| 12 | + "/opt" |
| 13 | + "/usr/local/Cellar" |
| 14 | + "/usr/local/bin" |
| 15 | + "/usr/local/etc" |
| 16 | + ) |
| 17 | + |
| 18 | + export __MYZS__DEFAULT_GCLOUD_DIRPATH="" |
| 19 | + for _gcloud_path in "${_gcloud_paths[@]}"; do |
| 20 | + _gcloud_fullpath="$_gcloud_path/$_gcloud_default_name" |
| 21 | + if _myzs:internal:checker:folder-exist "$_gcloud_fullpath"; then |
| 22 | + __MYZS__DEFAULT_GCLOUD_DIRPATH="$_gcloud_fullpath" |
| 23 | + fi |
| 24 | + done |
33 | 25 |
|
34 |
| - if ! _myzs:internal:checker:command-exist "gcloud"; then |
35 |
| - if _myzs:internal:checker:string-exist "$__MYZS__DEFAULT_GCLOUD_LOCATION"; then |
36 |
| - _myzs:internal:log:info "loading gcloud from ${__MYZS__DEFAULT_GCLOUD_LOCATION}" |
| 26 | + if _myzs:internal:checker:string-exist "$__MYZS__DEFAULT_GCLOUD_DIRPATH"; then |
| 27 | + _myzs:internal:log:debug "loading gcloud from ${__MYZS__DEFAULT_GCLOUD_DIRPATH}" |
37 | 28 |
|
38 |
| - local install_path="${__MYZS__DEFAULT_GCLOUD_LOCATION}/install.sh" |
39 |
| - $install_path |
40 |
| - else |
41 |
| - _myzs:internal:log:info "cannot found gcloud-sdk location, create \$MYZS_GCLOUD_LOCATION and point to gcloud-sdk location path" |
42 |
| - _myzs:internal:failed 2 |
43 |
| - fi |
44 |
| - else |
45 |
| - _myzs:internal:log:info "command gcloud already existed, skip initial" |
| 29 | + _myzs:internal:load "Google Cloud SDK path" "$__MYZS__DEFAULT_GCLOUD_DIRPATH/$_path_filename" |
| 30 | + _myzs:internal:load "Google Cloud SDK completion" "$__MYZS__DEFAULT_GCLOUD_DIRPATH/$_completion_filename" |
46 | 31 | fi
|
47 | 32 | }
|
48 | 33 |
|
49 |
| -initial "$MYZS_GCLOUD_LOCATION" |
| 34 | +_myzs:private:gcloud:initial |
0 commit comments