From 9ce45f5f38fa365f3ef813819c5b96b65e1315b3 Mon Sep 17 00:00:00 2001 From: Roman Inflianskas Date: Mon, 9 Jun 2014 10:54:21 +0400 Subject: [PATCH] [dpaste] Add "expires" option --- plugins/dpaste/dpaste.fish | 74 ++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 19 deletions(-) diff --git a/plugins/dpaste/dpaste.fish b/plugins/dpaste/dpaste.fish index ba187c3..a00ec6c 100644 --- a/plugins/dpaste/dpaste.fish +++ b/plugins/dpaste/dpaste.fish @@ -5,33 +5,69 @@ # https://github.com/Paulloz/fish-sprunge # Based on oh-my-zsh's sprunge plugin -if test -z $dpaste_keyword - set dpaste_keyword content -end -if test -z $dpaste_url - set dpaste_url https://dpaste.de/api/ + +set dpaste_expires_choises '(onetime|never|hour|week|month)' + +function dpaste_set_defaults + if [ -z $dpaste_keyword ] + set -g dpaste_keyword content + end + if [ -z $dpaste_url ] + set -g dpaste_url 'https://dpaste.de/api/?format=url' + end end function dpaste_send - curl -F "$dpaste_keyword=<-" $dpaste_url 2> /dev/null | sed "s/.*\"\(.*\)\".*/\1\n/" + # echo $dpaste_url >&2 + # echo $dpaste_send_url >&2 + curl -F "$dpaste_keyword=<-" $dpaste_send_url +end + +function dpaste_parse_expires + set expires_spec "-t $dpaste_expires_choises" + set dpaste_expires (echo $argv | sed -r "s/.*$expires_spec.*/\1/" | sed 's/hour/3600/' | sed 's/week/604800/' | sed 's/month/2592000/') + if [ -z (echo $dpaste_expires | sed -r "s/$dpaste_expires_choises//") ] + set dpaste_send_url "$dpaste_send_url&expires=$dpaste_expires" + end + echo $argv | sed -r "s/$expires_spec//" +end + +function dpaste_help + echo -e \ +"Usage: + dpaste [-t EXPIRES] < README.md + dpaste [-t EXPIRES] README.md + cat README.md | dpaste [-t EXPIRES] + dpaste [-t EXPIRES] "I \<3 to paste" + +Options: + -t EXPIRES set snippet expiration time: $dpaste_expires_choises [default: month]" +end + +function dpaste_parse_help + if contains -- -h $argv + dpaste_help + end end function dpaste - if isatty - if [ (count $argv) -gt 0 ] - if [ -f $argv ] - cat $argv + dpaste_set_defaults + set -g dpaste_send_url $dpaste_url + dpaste_parse_help $argv + or begin + set argv (dpaste_parse_expires $argv) + if isatty + if [ -n $argv ] + if [ -f $argv ] + cat $argv + else + echo $argv + end | dpaste_send else - echo $argv - end | dpaste_send + dpaste_help + end else - echo -e "Usage: - * dpaste < README.md - * dpaste README.md - * cat README.md | dpaste - * dpaste "I \<3 to paste"" + dpaste_send end - else - dpaste_send end end