* 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
WSL 2 changes the output of `uname -r`. For instance,
WSL 1: 4.4.0-18980-Microsoft
WSL 2: 4.19.67-microsoft-standard
Since WSL 2 lowercases the M, we can match for the rest of the string
which remains lowercase throughout both versions. Another option would
be to match for both upper- and lower-case Ms, like that:
$(uname -r) = *[Mm]icrosoft*
Fixed use of nohup in open_command where it was only necessary for
xdg-open (and actually harmful for cmd.exe in WSL 2). The current logic
is simpler and more future-proof.
An error was thrown (`bash: [: =: unary operator expected`) when using the __git_ps1_colorize_gitstring function outside of the one place it's called (line 512), because the "detached" variable was not quoted, and was unset.
An error was thrown (`bash: [: =: unary operator expected`) when using the __git_ps1_colorize_gitstring function outside of the one place it's called (line 512), because the "detached" variable was not quoted, and was unset.
There appears to be a definition issue for some functions/aliases which
result in the following errors when sourcing .zshrc:
```
/home/username/.oh-my-zsh/plugins/debian/debian.plugin.zsh:75: defining function based on alias `abd'
/home/username/.oh-my-zsh/plugins/debian/debian.plugin.zsh:75: parse error near `()'
```
Fixes#7986
The `commands[autojump]` block errs out when autojump is not found, and the rest, which is intended to be used for loading `autojump`, does not get executed.