Guest User

sysop

a guest
Mar 20th, 2010
227
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2. # dependencies: bash cat wget rm perl
  3. # recommends: tempfile
  4. #
  5. # Scroll some lines down!
  6.  
  7. listtypes() {
  8. cat <<EOF
  9. abap        ABAP
  10. actionscript    ActionScript
  11. actionscript3   ActionScript 3
  12. ada     Ada
  13. apache      Apache Log
  14. applescript AppleScript
  15. apt_sources APT Sources
  16. asm     ASM (NASM)
  17. asp     ASP
  18. autoit      AutoIt
  19. avisynth    Avisynth
  20. bash        Bash
  21. basic4gl    Basic4GL
  22. bibtex      BibTeX
  23. blitzbasic  Blitz Basic
  24. bnf     BNF
  25. boo     BOO
  26. bf      BrainFuck
  27. c       C
  28. c_mac       C for Macs
  29. cill        C Intermediate Language
  30. csharp      C#
  31. cpp     C++
  32. caddcl      CAD DCL
  33. cadlisp     CAD Lisp
  34. cfdg        CFDG
  35. klonec      Clone C
  36. klonecpp    Clone C++
  37. cmake       CMake
  38. cobol       COBOL
  39. cfm     ColdFusion
  40. css     CSS
  41. d       D
  42. dcs     DCS
  43. delphi      Delphi
  44. dff     Diff
  45. div     DIV
  46. dos     DOS
  47. dot     DOT
  48. eiffel      Eiffel
  49. email       Email
  50. erlang      Erlang
  51. fo      FO Language
  52. fortran     Fortran
  53. freebasic   FreeBasic
  54. gml     Game Maker
  55. genero      Genero
  56. gettext     GetText
  57. groovy      Groovy
  58. haskell     Haskell
  59. hq9plus     HQ9 Plus
  60. html4strict HTML
  61. idl     IDL
  62. ini     INI file
  63. inno        Inno Script
  64. intercal    INTERCAL
  65. io      IO
  66. java        Java
  67. java5       Java 5
  68. javascript  JavaScript
  69. kixtart     KiXtart
  70. latex       Latex
  71. lsl2        Linden Scripting
  72. lisp        Lisp
  73. locobasic   Loco Basic
  74. lolcode     LOL Code
  75. lotusformulas   Lotus Formulas
  76. lotusscript Lotus Script
  77. lscript     LScript
  78. lua     Lua
  79. m68k        M68000 Assembler
  80. make        Make
  81. matlab      MatLab
  82. matlab      MatLab
  83. mirc        mIRC
  84. modula3     Modula 3
  85. mpasm       MPASM
  86. mxml        MXML
  87. mysql       MySQL
  88. text        None
  89. nsis        NullSoft Installer
  90. oberon2     Oberon 2
  91. objc        Objective C
  92. ocaml-brief OCalm Brief
  93. ocaml       OCaml
  94. glsl        OpenGL Shading
  95. oobas       Openoffice BASIC
  96. oracle11    Oracle 11
  97. oracle8     Oracle 8
  98. pascal      Pascal
  99. pawn        PAWN
  100. per     Per
  101. perl        Perl
  102. php     PHP
  103. php-brief   PHP Brief
  104. pic16       Pic 16
  105. pixelbender Pixel Bender
  106. plsql       PL/SQL
  107. povray      POV-Ray
  108. powershell  Power Shell
  109. progress    Progress
  110. prolog      Prolog
  111. properties  Properties
  112. providex    ProvideX
  113. python      Python
  114. qbasic      QBasic
  115. rails       Rails
  116. rebol       REBOL
  117. reg     REG
  118. robots      Robots
  119. ruby        Ruby
  120. gnuplot     Ruby Gnuplot
  121. sas     SAS
  122. scala       Scala
  123. scheme      Scheme
  124. scilab      Scilab
  125. sdlbasic    SdlBasic
  126. smalltalk   Smalltalk
  127. smarty      Smarty
  128. sql     SQL
  129. tsql        T-SQL
  130. tcl     TCL
  131. tcl     TCL
  132. teraterm    Tera Term
  133. thinbasic   thinBasic
  134. typoscript  TypoScript
  135. unreal      unrealScript
  136. vbnet       VB.NET
  137. verilog     VeriLog
  138. vhdl        VHDL
  139. vim     VIM
  140. visualprolog    Visual Pro Log
  141. vb      VisualBasic
  142. visualfoxpro    VisualFoxPro
  143. whitespace  WhiteSpace
  144. whois       WHOIS
  145. winbatch    Win Batch
  146. xml     XML
  147. xorg_conf   Xorg Config
  148. xpp     XPP
  149. z80     Z80 Assembler
  150. EOF
  151. }
  152.  
  153. temp=`tempfile || echo -n "${TEMP:-.}/pastebin.tmp.$RANDOM"`
  154.  
  155. expiry=N
  156. email=
  157. ft="bash"
  158. private=0
  159. subdomain=
  160. name=${NICK:-${USER}}
  161.  
  162.  
  163. while [ -n "$1" ]; do
  164.     case "$1" in
  165.     "-h"|"--help")  echo "${0##*/} [-l language] [-n name] [-x expiry] [-e email] [-P|-p] [-s subdomain] <file>
  166.    name         got from \$NICK environment ($name)
  167.    language     type \"-l help\" option to see all ($ft)
  168.    expiry       N - never; 10M - ten minutes; 1H - an hour; 1D - a day; 1M - a month ($expiry)
  169.    subdomain    $subdomain.paste.bin"
  170.         exit 0
  171.         ;;
  172.     "-l")   shift
  173.         ft="$1"
  174.         [ x"$ft" = x"help" ] && listtypes && exit 0
  175.         ;;
  176.     "-n")   shift
  177.         name="$1"
  178.         ;;
  179.     "-x")   shift
  180.         expiry="$1"
  181.         ;;
  182.     "-e")   shift
  183.         email="$1"
  184.         ;;
  185.     "-P")   private=1
  186.         ;;
  187.     "-p")   private=0
  188.         ;;
  189.     "-s")   shift
  190.         subdomain="$1"
  191.         ;;
  192.     --) shift
  193.         break
  194.         ;;
  195.     -*) false
  196.         ;;
  197.     *)  break
  198.         ;;
  199.     esac
  200.     shift
  201. done
  202.  
  203.  
  204. [ -z "$1" ] && infile="/dev/stdin" || infile="$1"
  205. #code2="$(cat "$infile" | od -t x1 -A n | tr " " % | tr -d "\n\r")" # brute force url encoding
  206. code2="$(perl -e 'while(<STDIN>) {$_=~s/([^A-Z0-9\(\)])/sprintf("%%%02X",ord($1))/iges; print $_}' < "$infile")"
  207.  
  208. echo -n "paste_code=$code2&paste_name=$name&paste_format=$ft&submit=submit&paste_expire_date=$expiry&paste_email=$email&paste_private=$private&paste_subdomain=$subdomain" > $temp
  209.  
  210. echo "Connecting to pastebin..." >&2
  211. wget http://pastebin.com/api_public.php -O - -q --post-file=$temp
  212. echo # newline correction
  213.  
  214. rm -f $temp
  215.  
  216. exit 0
RAW Paste Data