diff -ruN wgetpaste-2.22.orig/wgetpaste wgetpaste-2.22/wgetpaste --- wgetpaste-2.25.orig/wgetpaste 2014-01-21 11:31:59.475610453 +0400 +++ wgetpaste-2.25/wgetpaste 2014-01-21 11:41:13.858639053 +0400 @@ -6,6 +6,8 @@ VERSION="2.25" +DEFAULT_SERVICE="calculate" + # don't inherit LANGUAGE from the env unset LANGUAGE @@ -14,7 +16,7 @@ E=$'\e' N=$'\n' ### services -SERVICES="bpaste ca codepad dpaste gists poundpython" +SERVICES="bpaste ca codepad dpaste gists poundpython calculate" # bpaste ENGINE_bpaste=lodgeit URL_bpaste="http://bpaste.net/" @@ -42,6 +44,17 @@ URL_poundpython="http://paste.pound-python.org/" ENGINE_tinyurl=tinyurl URL_tinyurl="http://tinyurl.com/ api-create.php" REGEX_RAW_tinyurl='s|^\(http://[^/]*/\)\([[:alnum:]]*\)$|\1\2|' +# calculate +ENGINE_calculate=calculate +if [[ "$LANG" =~ 'ru_RU' ]]; then + URL_calculate="http://pastebin.calculate-linux.ru" +else + URL_calculate="http://pastebin.calculate-linux.org" +fi +DEFAULT_LANGUAGE_calculate="Text" +DEFAULT_PARENT_calculate="" +DEFAULT_PRIVATE_calculate=0 +SIZE_calculate="25000 25%kB" ### engines # ca @@ -52,12 +65,12 @@ LANGUAGE_COUNT_ca=0 EXPIRATIONS_ca="Never 5%minutes 10%minutes 15%minutes 30%minutes 45%minutes 1%hour 2%hours \ 4%hours 8%hours 12%hours 1%day 2%days 3%days 1%week 2%weeks 3%weeks 1%month 2%months \ 3%months 4%months 5%months 6%months 1%year" -POST_ca="s=Submit+Post name description type expiry % content" +POST_ca="s=Submit+Post name description type expiry % % % content" REGEX_URL_ca='s|^.*content="[0-9]*;\(http://[^/]*/[0-9]*\)".*$|\1|p' REGEX_RAW_ca='s|^\(http://[^/]*/\)\([0-9]*\)$|\1raw/\2|' # codepad LANGUAGES_codepad="C C++ D Haskell Lua OCaml PHP Perl Plain%Text Python Ruby Scheme Tcl" -POST_codepad="submit % % lang % % code" +POST_codepad="submit % % lang % % % % code" REGEX_URL_codepad='s|^--.*\(http://codepad.org/[^ ]\+\)|\1|p' REGEX_RAW_codepad='s|^\(http://[^/]*/\)\([[:alnum:]]*\)$|\1\2/raw.rb|' # dpaste @@ -67,7 +80,7 @@ LANGUAGE_VALUES_dpaste="% Apache Bash Css Diff DjangoTemplate Haskell JScript Py Ruby Rhtml Sql Xml" EXPIRATIONS_dpaste="30%days 30%days%after%last%view" EXPIRATION_VALUES_dpaste="off on" -POST_dpaste="submit=Paste+it poster title language hold % content" +POST_dpaste="submit=Paste+it poster title language hold % % % content" REGEX_RAW_dpaste='s|^\(http://[^/]*/\)[^0-9]*\([0-9]*/\)$|\1\2plain/|' # gists LANGUAGES_gists="ActionScript Ada Apex AppleScript Arc Arduino ASP Assembly @@ -141,8 +154,23 @@ objective-c objective-j ocaml ooc perl php text pov prolog python python3 py3tb ragel-c ragel-cpp ragel-d ragel-java ragel-objc ragel-ruby raw rconsole rebol redcode rst rhtml rb \ rbcon splus sass scala scheme smalltalk smarty sql sqlite3 squidconf tcl tcsh tex diff vala vb.net \ vim xml xml+cheetah xml+django xml+evoque xml+mako xml+myghty xml+php xml+erb xml+smarty xslt yaml" -POST_lodgeit="submit=Paste! % % language % % code" +POST_lodgeit="submit=Paste! % % language % % % % code" REGEX_RAW_lodgeit='s|^\(http://[^/]*/\)show\(/[[:alnum:]]*/\)$|\1raw\2|' +# calculate +LANGUAGES_calculate="Apache Bash Batch Boo C C# C++ Clojure Creole_Wiki CSS \ +CSV D Debian_control-files Django_Jinja_Templates Dylan Erlang eRuby_rhtml GAS GCC_Messages \ +Genshi_Templates Gettext_catalogs GL_Shader_language Haskell HTML INI_File Interactive_Ruby IO \ +IRC_Logs Java javac_Messages JavaScript JSP Lighttpd Literate_Haskell LLVM Lua Mako_Templates Matlab \ +Matlab_Session MiniD Multi-File Myghty_Templates MySQL Nasm Nginx Object-Pascal OCaml Perl PHP \ +PHP_(inline) Povray Python Python_Console_Sessions Python_Tracebacks reStructuredText Ruby Scala \ +Scheme Smalltalk Smarty sources.list SQL SquidConf TeX_LaTeX Text Unified_Diff Vim XML XSLT YAML" +LANGUAGE_VALUES_calculate="apache bash bat boo c csharp cpp clojure creole css csv d control html+django \ +dylan erlang rhtml gas gcc-messages html+genshi gettext glsl haskell html ini irb io irc java \ +javac-messages js jsp lighttpd literate-haskell llvm lua html+mako matlab matlabsession minid multi \ +html+myghty mysql nasm nginx objectpascal ocaml perl html+php php povray python pycon pytb rst ruby \ +scala scheme smalltalk smarty sourceslist sql squidconf tex text diff vim xml xslt yaml" +POST_calculate="submit=paste! % % language % parent private % text" +REGEX_RAW_calculate='s|^\(http://[^/]*/\)show\(/[0-9]*/\)$|\1raw\2|' ### errors die() { @@ -340,6 +368,9 @@ Options: -s, --service SERVICE set service to use (defaults to "$DEFAULT_SERVICE") -e, --expiration EXPIRATION set when it should expire (defaults to "$DEFAULT_EXPIRATION") + -p, --parent PARENT set parent paste (defaults to "$DEFAULT_PARENT", make use id paste) (Calculate pastebin option) + -P, --private PRIVATE set private status (defaults to "$DEFAULT_PRIVATE") (Calculate pastebin option) + -S, --list-services list supported pastebin services -L, --list-languages list languages supported by the specified service -E, --list-expiration list expiration setting supported by the specified service @@ -431,6 +462,18 @@ showlanguages() { done | sort } +showprivate() { + local p priv d + priv=PRIVATE_$ENGINE + [[ -n $COMPLETIONS ]] && printlist ${!priv} | sort && exit 0 + echo "Private supported by $(getrecipient) (case sensitive):" + [[ -z ${!priv} ]] && echo "$N\"$ENGINE\" has no support for setting language." >&2 && exit 1 + for p in ${!priv}; do + [[ ${p//\%/ } = $DEFAULT_PRIVATE ]] && d="*" || d=" " + echo " $d${p//\%/ }" + done | sort +} + showexpirations() { local e expiration info d expiration=EXPIRATIONS_$ENGINE @@ -484,7 +527,7 @@ postdata() { post=POST_$ENGINE if [[ -n ${!post} ]]; then nr=${!post//[^ ]} - [[ 6 = ${#nr} ]] || die "\"${SERVICE}\" is not supported by ${FUNCNAME}()." + [[ 8 = ${#nr} ]] || die "\"${SERVICE}\" is not supported by ${FUNCNAME}()." extra=${!post%% *} [[ '%' = $extra ]] || echo -n "$extra&" e() { @@ -497,7 +540,7 @@ postdata() { post=${post#$f } done } - e "${!post#$extra }" NICK DESCRIPTION LANGUAGE EXPIRATION CVT_TABS INPUT + e "${!post#$extra }" NICK DESCRIPTION LANGUAGE EXPIRATION PARENT PRIVATE CVT_TABS INPUT elif [[ function == $(type -t json_$ENGINE) ]]; then json_$ENGINE "$DESCRIPTION" "$LANGUAGE" "$INPUT" else @@ -600,6 +643,16 @@ while [[ -n $1 ]]; do -L | --list-languages ) LISTLANGUAGES=0 ;; + -p | --parent ) + requiredarg "$@" + PARENTSET=0 + PARENT="$2" + ;; + -P | --private ) + requiredarg "$@" + PRIVATESET=0 + PRIVATE="$2" + ;; -n | --nick ) requiredarg "$@" NICK=$(escape "$2") @@ -677,12 +730,16 @@ load_configs DEFAULT_NICK=${DEFAULT_NICK:-$(whoami)} || die "whoami failed" DEFAULT_SERVICE=${DEFAULT_SERVICE:-bpaste} DEFAULT_LANGUAGE=${DEFAULT_LANGUAGE:-Plain Text} +DEFAULT_PARENT=${DEFAULT_PARENT:-''} +DEFAULT_PRIVATE=${DEFAULT_PRIVATE:-0} DEFAULT_EXPIRATION=${DEFAULT_EXPIRATION:-1 month} SERVICE=${SERVICE:-${DEFAULT_SERVICE}} ENGINE=ENGINE_$SERVICE ENGINE="${!ENGINE}" default="DEFAULT_NICK_$SERVICE" && [[ -n ${!default} ]] && DEFAULT_NICK=${!default} default="DEFAULT_LANGUAGE_$SERVICE" && [[ -n ${!default} ]] && DEFAULT_LANGUAGE=${!default} +default="DEFAULT_PARENT_$SERVICE" && [[ -n ${!default} ]] && DEFAULT_PARENT=${!default} +default="DEFAULT_PRIVATE_$SERVICE" && [[ -n ${!default} ]] && DEFAULT_PRIVATE=${!default} default="DEFAULT_EXPIRATION_$SERVICE" && [[ -n ${!default} ]] && DEFAULT_EXPIRATION=${!default} NICK=${NICK:-$(escape "${DEFAULT_NICK}")} [[ -z $SOURCE ]] && SOURCE="stdin" @@ -704,6 +761,10 @@ INFO_ARGS=${INFO_ARGS:-"--ignore-default-opts"} LANGUAGE=${LANGUAGE:-${DEFAULT_LANGUAGE}} verifylanguage LANGUAGE=$(escape "$LANGUAGE") +PARENT=${PARENT:-${DEFAULT_PARENT}} +PARENT=$(escape "$PARENT") +PRIVATE=${PRIVATE:-${DEFAULT_PRIVATE}} +PRIVATE=$(escape "$PRIVATE") EXPIRATION=${EXPIRATION:-${DEFAULT_EXPIRATION}} verifyexpiration EXPIRATION=$(escape "$EXPIRATION") @@ -853,6 +914,7 @@ else [[ -f $TMPF ]] || TMPF=$(mktemp /tmp/wgetpaste.XXXXXX) if [[ -f $TMPF ]]; then postdata > "$TMPF" || die "Failed to write to temporary file: \"$TMPF\"." + [[ $LANG =~ ru_RU ]] && enconv $TMPF WGETARGS="--post-file=$TMPF" else # fall back to using --post-data if the temporary file could not be created