From 043d09bbfe0c22656aa68819640d7fc323c8ba79 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 7 Jul 2017 17:04:30 -0500 Subject: [PATCH] [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 --- modules/git/functions/_git-hub-shorten-url | 7 ++++++- modules/git/functions/git-hub-shorten-url | 8 +++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/git/functions/_git-hub-shorten-url b/modules/git/functions/_git-hub-shorten-url index 1d811ca..7e65ded 100644 --- a/modules/git/functions/_git-hub-shorten-url +++ b/modules/git/functions/_git-hub-shorten-url @@ -8,4 +8,9 @@ # Sorin Ionescu # -_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 diff --git a/modules/git/functions/git-hub-shorten-url b/modules/git/functions/git-hub-shorten-url index f36662f..470c093 100644 --- a/modules/git/functions/git-hub-shorten-url +++ b/modules/git/functions/git-hub-shorten-url @@ -7,20 +7,22 @@ # function git-hub-shorten-url { -local url="$1" +local url="$1" code="$2" if [[ "$url" == '-' ]]; then read url <&0 fi 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 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 print "$0: command not found: curl" >&2 + return 1 fi # }