Browse Source

[git] Support short-code and improve completion in 'git-hub-shorten-url'

Changes:
- Add optional short-code support
- Improve completion for github.com URL (`http(s)://*.github.com` only)
- Return with non-zero exit code appropriately
master
Indrajit Raychaudhuri 7 years ago committed by Kaleb Elwert
parent
commit
7a4395d227
  1. 7
      modules/git/functions/_git-hub-shorten-url
  2. 8
      modules/git/functions/git-hub-shorten-url

7
modules/git/functions/_git-hub-shorten-url

@ -8,4 +8,9 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
_arguments '::GitHub URL:_urls' && return 0 local service="$service"
zstyle ":completion:*:${service}:*:prefixes" ignored-patterns '^http(|s)://'
zstyle ":completion:*:${service}:*:hosts" ignored-patterns '^*github.com'
_arguments '1::GitHub URL:_urls' '2::code:' && return 0

8
modules/git/functions/git-hub-shorten-url

@ -7,20 +7,22 @@
# function git-hub-shorten-url { # function git-hub-shorten-url {
local url="$1" local url="$1" code="$2"
if [[ "$url" == '-' ]]; then if [[ "$url" == '-' ]]; then
read url <&0 read url <&0
fi fi
if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then
print "usage: $0 [ url | - ] ; must be a github.com URL" >&2 print "usage: $0 [ url | - ] [code] ; url must be a github.com URL" >&2
return 1
fi fi
if (( $+commands[curl] )); then if (( $+commands[curl] )); then
curl -s -i 'https://git.io' -F "url=$url" | sed -n 's/^Location: //p' curl -s -i 'https://git.io' -F "url=$url" ${(s: :)code:+ -F "code=$code"} | sed -n 's/^Location: //p'
else else
print "$0: command not found: curl" >&2 print "$0: command not found: curl" >&2
return 1
fi fi
# } # }

Loading…
Cancel
Save