diff --git a/plugins/git/completions/_git-hub-short-url b/plugins/git/completions/_git-hub-short-url new file mode 100644 index 00000000..b0f997f0 --- /dev/null +++ b/plugins/git/completions/_git-hub-short-url @@ -0,0 +1,12 @@ +#compdef git-hub-short-url +#autoload + +# +# Completes git-hub-short-url. +# +# Authors: +# Sorin Ionescu +# + +_arguments '1:url:' && return 0 + diff --git a/plugins/git/functions/git-hub-short-url b/plugins/git/functions/git-hub-short-url new file mode 100644 index 00000000..c394f5b8 --- /dev/null +++ b/plugins/git/functions/git-hub-short-url @@ -0,0 +1,23 @@ +# +# Shortens GitHub URLs. +# +# Authors: +# Sorin Ionescu +# + +local url="$1" + +if [[ "$url" == '-' ]]; then + read url <&0 +fi + +if [[ -z "$url" ]]; then + print "usage: $0 [ url | - ]" >&2 +fi + +if (( $+commands[curl] )); then + curl -s -i 'http://git.io' -F "url=$url" | grep 'Location:' | sed 's/Location: //' +else + print "$0: command not found: curl" >&2 +fi +