X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=7bd4416eaca611b46a63c8d734dbdd430b4b92bd;hb=b0fec259a8d00c3ffcb8f68998a8a9b502fcff13;hp=89b64bf8d9c9589a934fcf028e5e630b5796a296;hpb=fe6aa2b61878209afc8e9fcf80b0c8bdda1747ce;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 89b64bf..7bd4416 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -2632,12 +2632,15 @@ xtrename() { # API reference: https://code.google.com/apis/urlshortener/ function zurl() { emulate -L zsh + setopt extended_glob + if [[ -z $1 ]]; then print "USAGE: zurl " return 1 fi - local PN url prog api json data + local PN url prog api json contenttype item + local -a data PN=$0 url=$1 @@ -2655,11 +2658,19 @@ function zurl() { api='https://www.googleapis.com/urlshortener/v1/url' contenttype="Content-Type: application/json" json="{\"longUrl\": \"${url}\"}" - data=$($prog --silent -H ${contenttype} -d ${json} $api) - # Match against a regex and print it - if [[ $data =~ '"id": "(http://goo.gl/[[:alnum:]]+)"' ]]; then - print $match; - fi + data=(${(f)"$($prog --silent -H ${contenttype} -d ${json} $api)"}) + # Parse the response + for item in "${data[@]}"; do + case "$item" in + ' '#'"id":'*) + item=${item#*: \"} + item=${item%\",*} + printf '%s\n' "$item" + return 0 + ;; + esac + done + return 1 } #f2# Find history events by search pattern and list them by date.