function lhpaste() { local server_url="https://paste.linux-help.org" local o_apikey local o_expire=(--expire 60) local o_help local o_lang local o_name 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") else o_name=(--name "$USER") fi if [[ -n "$LHPASTE_SERVER_URL" ]]; then o_url=(--url "$LHPASTE_SERVER_URL") 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 ENVIRONMENT: LHPASTE_NAME Set the name to use instead of the default value of \$USER LHPASTE_SERVER_URL Set the server base url to the stikked server LHPASTE_API_KEY Set the apikey to use the stikked server API 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 "$o_apikey" ]]; then server_url="$server_url?apikey=$o_apikey[2]" 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 }