From d43d41f9b37d6785691d123482abb1ef3af8263b Mon Sep 17 00:00:00 2001 From: Eric Renfro Date: Sun, 6 Jan 2019 12:32:03 -0500 Subject: [PATCH] Added lhpaste --- .local/dotfiles/functions/lhpaste.zsh | 126 ++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 .local/dotfiles/functions/lhpaste.zsh diff --git a/.local/dotfiles/functions/lhpaste.zsh b/.local/dotfiles/functions/lhpaste.zsh new file mode 100644 index 0000000..065fa59 --- /dev/null +++ b/.local/dotfiles/functions/lhpaste.zsh @@ -0,0 +1,126 @@ +function lhpaste() { + local server_url="https://paste.linux-help.org" + + local o_apikey + local o_expire=(--expire 3600) + local o_help + local o_lang + local o_name=(--name Psi-Jack) + local o_private + local o_reply + local o_title + local o_url=(--url https://paste.linux-help.org) + local args + + if [[ -n "$LHPASTE_API_KEY" ]]; then + o_apikey=(--apikey "$LHPASTE_API_KEY") + fi + if [[ -n "$LHPASTE_NAME" ]]; then + o_name=(--name "$LHPASTE_NAME") + fi + + zparseopts -D -K -M -- \ + h=o_help -help=h \ + e:=o_expire -expire:=e \ + l:=o_lang -lang:=l \ + n:=o_name -name:=n \ + p=o_private -private=p \ + r:=o_reply -reply:=r \ + t:=o_title -title:=t \ + u:=o_url -url:=u \ + a:=o_apikey -apikey:=a + + if [[ -n "$o_help" ]]; then + cat <<-EOF +USAGE: $funcstack[1] [OPTIONS] [FILE] + +OPTIONS: + + --expire MIN, -e MIN Set paste expire time in minutes (Default: $o_expire[2]) + --lang LANG, -l LANG Set paste language + --name TEXT, -n TEXT Set paste author name (Default: $o_name[2]) + --private, -p Set paste private + --reply ID, -r ID Set paste in reply to ID + --title TEXT, -t TEXT Set paste title text + --url URL, -u URL Set paste server URL (Default: $o_url[2]) + --apikey TEXT, -a TEXT Set API-KEY for Stikked Paste access +EOF + return 0 + fi + + #echo "DEBUG:" + #echo "expire = $o_expire[2]" + #echo "lang = $o_lang[2]" + #echo "name = $o_name[2]" + #echo "help = $o_help" + #echo "private = $o_private" + #echo "reply = $o_reply[2]" + #echo "title = $o_title[2]" + #echo "url = $o_url[2]" + #echo "apikey = $o_apikey[2]" + + if [[ -n "$o_expire" ]]; then + args+=(-d "expire=$o_expire[2]") + fi + + if [[ -n "$o_lang" ]]; then + args+=(-d "lang=$o_lang[2]") + fi + + if [[ -n "$o_name" ]]; then + args+=(-d "name=$o_name[2]") + fi + + if [[ -n "$o_private" ]]; then + if [[ "$o_private" == "-p" || "$o_private" == "--private" || "$o_private" == "-p1" ]]; then + args+=(-d "private=1") + elif [[ "$o_private" == "-p0" ]]; then + args+=(-d "private=0") + fi + fi + + if [[ -n "$o_reply" ]]; then + args+=(-d "name=$o_reply[2]") + fi + + if [[ -n "$o_title" ]]; then + args+=(-d "name=$o_title[2]") + fi + + if [[ -n "$o_apikey" ]]; then + apikey="$o_apikey[2]" + fi + + if [[ -n "$o_url" ]]; then + server_url="$o_url[2]/api/create" + if [[ -n "$apikey" ]]; then + server_url="$server_url?apikey=$apikey" + fi + fi + + #echo "args = $args" + #echo "opts = $*" + #return 0 + + if [[ -t 1 ]]; then + if test $# = 0; then + if test -t 0; then + echo "Missing filename" 1>&2 + return + fi + curl $args --data-urlencode text@- "$server_url" + else + curl $args --data-urlencode text@"$1" "$server_url" + fi + else + if test $# = 0; then + if test -t 0; then + echo "Missing filename" 1>&2 + return + fi + curl $args --data-urlencode text@- "$server_url" + else + curl $args --data-urlencode text@"$1" "$server_url" + fi + fi +}