mirror of
https://github.com/dcarrillo/prezto.git
synced 2024-12-22 10:28:00 +00:00
git-hub-shorten-url: Slug support
This commit is contained in:
parent
af003d83c5
commit
36e24eeb08
@ -5,8 +5,11 @@
|
|||||||
# Completes git-hub-shorten-url.
|
# Completes git-hub-shorten-url.
|
||||||
#
|
#
|
||||||
# Authors:
|
# Authors:
|
||||||
|
# Joel Kuzmarski <leoj3n@gmail.com>
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
_arguments '1:url:' && return 0
|
_arguments \
|
||||||
|
'1:url:' \
|
||||||
|
'2:slug:' && return 0
|
||||||
|
|
||||||
|
@ -2,21 +2,29 @@
|
|||||||
# Shortens GitHub URLs.
|
# Shortens GitHub URLs.
|
||||||
#
|
#
|
||||||
# Authors:
|
# Authors:
|
||||||
|
# Joel Kuzmarski <leoj3n@gmail.com>
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
#
|
#
|
||||||
|
|
||||||
local url="$1"
|
local url="$1"
|
||||||
|
|
||||||
if [[ "$url" == '-' ]]; then
|
|
||||||
read url <&0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$url" ]]; then
|
if [[ -z "$url" ]]; then
|
||||||
print "usage: $0 [ url | - ]" >&2
|
print "usage: $0 [ url | - ] [slug]" >&2
|
||||||
|
return 1
|
||||||
|
elif [[ "$url" == '-' ]]; then
|
||||||
|
read url <&0
|
||||||
|
elif [[ "$url" != *github.com* ]]; then
|
||||||
|
url="https://github.com/$url"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( $+commands[curl] )); then
|
if (( $+commands[curl] )); then
|
||||||
curl -s -i 'http://git.io' -F "url=$url" | grep 'Location:' | sed 's/Location: //'
|
local result="$(curl -s -i 'http://git.io' -F "url=$url" -F "code=$2")"
|
||||||
|
|
||||||
|
if [[ $result == *Unprocessable* ]]; then
|
||||||
|
print "$0: the slug '$2' is already taken!" >&2
|
||||||
|
else
|
||||||
|
print $result | grep 'Location:' | sed 's/Location: //'
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
print "$0: command not found: curl" >&2
|
print "$0: command not found: curl" >&2
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user