diff options
author | Daniel Hahler <git@thequod.de> | 2011-11-24 13:51:55 +0100 |
---|---|---|
committer | Daniel Hahler <git@thequod.de> | 2011-11-24 13:57:10 +0100 |
commit | 2c660c16ad818d4e1f001e392f7e82c7c02cbbc6 (patch) | |
tree | cee329468d9576b6f366cbb9b381d95df771c7c7 /plugins/github | |
parent | 757fa3314d1c041ab715dbda838f3e9b2ff9ce17 (diff) | |
download | zsh-2c660c16ad818d4e1f001e392f7e82c7c02cbbc6.tar.gz zsh-2c660c16ad818d4e1f001e392f7e82c7c02cbbc6.tar.bz2 zsh-2c660c16ad818d4e1f001e392f7e82c7c02cbbc6.zip |
Only alias git=hub if `hub --version` works.
`hub` is crashing for me on a old CentOS setup with
"undefined method `shelljoin'".
On first use of the `git` function it is now checked if
`hub --version` returns successfully.
Diffstat (limited to 'plugins/github')
-rw-r--r-- | plugins/github/github.plugin.zsh | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 9b0d54602..197e86a48 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,7 +1,17 @@ # Setup hub function for git, if it is available; http://github.com/defunkt/hub if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then # eval `hub alias -s zsh` - function git(){hub "$@"} + function git(){ + if ! (( $+_has_working_hub )); then + hub --version &> /dev/null + _has_working_hub=$(($? == 0)) + fi + if (( $_has_working_hub )) ; then + hub "$@" + else + command git "$@" + fi + } fi # Functions ################################################################# |