summaryrefslogtreecommitdiff
path: root/plugins/github
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2011-11-24 13:51:55 +0100
committerDaniel Hahler <git@thequod.de>2011-11-24 13:57:10 +0100
commit2c660c16ad818d4e1f001e392f7e82c7c02cbbc6 (patch)
treecee329468d9576b6f366cbb9b381d95df771c7c7 /plugins/github
parent757fa3314d1c041ab715dbda838f3e9b2ff9ce17 (diff)
downloadzsh-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.zsh12
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 #################################################################