diff options
Diffstat (limited to 'plugins/github/github.plugin.zsh')
-rw-r--r-- | plugins/github/github.plugin.zsh | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 9b0d54602..25b1a1e1b 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,7 +1,34 @@ # Setup hub function for git, if it is available; http://github.com/defunkt/hub if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then + # Autoload _git completion functions + if declare -f _git > /dev/null; then + _git + fi + + if declare -f _git_commands > /dev/null; then + _hub_commands=( + 'alias:show shell instructions for wrapping git' + 'pull-request:open a pull request on GitHub' + 'fork:fork origin repo on GitHub' + 'create:create new repo on GitHub for the current project' + 'browse:browse the project on GitHub' + 'compare:open GitHub compare view' + ) + # Extend the '_git_commands' function with hub commands + eval "$(declare -f _git_commands | sed -e 's/base_commands=(/base_commands=(${_hub_commands} /')" + fi # 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 ################################################################# @@ -51,10 +78,20 @@ exist_gh() { # [DIRECTORY] cd "$1" name=$( git config user.name ) ghuser=$( git config github.user ) + repo=$1 git remote add origin git@github.com:${ghuser}/${repo}.git git push -u origin master } +# git.io "GitHub URL" +# +# Shorten GitHub url, example: +# https://github.com/nvogel/dotzsh > http://git.io/8nU25w +# source: https://github.com/nvogel/dotzsh +# documentation: https://github.com/blog/985-git-io-github-url-shortener +# +git.io() {curl -i -s http://git.io -F "url=$1" | grep "Location" | cut -f 2 -d " "} + # End Functions ############################################################# |