Mercurial > paster
annotate paster.sh @ 64:e8d8eaa0da53
pasterd: support <title> in header
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 26 May 2022 13:28:10 +0200 |
parents | a93f4e3313e9 |
children | 1a98bc0daa49 |
rev | line source |
---|---|
7 | 1 # |
2 # paster -- convenient front-end to a pasterd instance | |
3 # | |
60
ecb0b90d94d8
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
59
diff
changeset
|
4 # Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> |
7 | 5 # |
6 # Permission to use, copy, modify, and/or distribute this software for any | |
7 # purpose with or without fee is hereby granted, provided that the above | |
8 # copyright notice and this permission notice appear in all copies. | |
9 # | |
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 # | |
18 | |
19 author="Anonymous" | |
20 language="nohighlight" | |
21 title="Untitled" | |
55
78a4062bed62
misc: use day by default
David Demelier <markand@malikania.fr>
parents:
48
diff
changeset
|
22 duration="day" |
48
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
23 public=0 |
7 | 24 verbose=0 |
25 | |
26 die() | |
27 { | |
28 echo "$@" 1>&2 | |
29 exit 1 | |
30 } | |
31 | |
32 languages() | |
33 { | |
34 echo "nohighlight" | |
35 echo "1c" | |
36 echo "abnf" | |
37 echo "accesslog" | |
38 echo "actionscript" | |
39 echo "ada" | |
40 echo "apache" | |
41 echo "applescript" | |
42 echo "arduino" | |
43 echo "armasm" | |
44 echo "asciidoc" | |
45 echo "aspectj" | |
46 echo "autohotkey" | |
47 echo "autoit" | |
48 echo "avrasm" | |
49 echo "awk" | |
50 echo "axapta" | |
51 echo "bash" | |
52 echo "basic" | |
53 echo "bnf" | |
54 echo "brainfuck" | |
55 echo "cal" | |
56 echo "capnproto" | |
57 echo "ceylon" | |
58 echo "clean" | |
59 echo "clojure" | |
60 echo "clojure-repl" | |
61 echo "cmake" | |
62 echo "coffeescript" | |
63 echo "coq" | |
64 echo "cos" | |
65 echo "cpp" | |
66 echo "crmsh" | |
67 echo "crystal" | |
68 echo "cs" | |
69 echo "csp" | |
70 echo "css" | |
71 echo "dart" | |
72 echo "delphi" | |
73 echo "diff" | |
74 echo "django" | |
75 echo "d" | |
76 echo "dns" | |
77 echo "dockerfile" | |
78 echo "dos" | |
79 echo "dsconfig" | |
80 echo "dts" | |
81 echo "dust" | |
82 echo "ebnf" | |
83 echo "elixir" | |
84 echo "elm" | |
85 echo "erb" | |
86 echo "erlang" | |
87 echo "erlang-repl" | |
88 echo "excel" | |
89 echo "fix" | |
90 echo "flix" | |
91 echo "fortran" | |
92 echo "fsharp" | |
93 echo "gams" | |
94 echo "gauss" | |
95 echo "gcode" | |
96 echo "gherkin" | |
97 echo "glsl" | |
98 echo "go" | |
99 echo "golo" | |
100 echo "gradle" | |
101 echo "groovy" | |
102 echo "haml" | |
103 echo "handlebars" | |
104 echo "haskell" | |
105 echo "haxe" | |
106 echo "hsp" | |
107 echo "htmlbars" | |
108 echo "http" | |
109 echo "hy" | |
110 echo "inform7" | |
111 echo "ini" | |
112 echo "irpf90" | |
113 echo "java" | |
114 echo "javascript" | |
115 echo "jboss-cli" | |
116 echo "json" | |
117 echo "julia" | |
118 echo "julia-repl" | |
119 echo "kotlin" | |
120 echo "lasso" | |
121 echo "ldif" | |
122 echo "leaf" | |
123 echo "less" | |
124 echo "lisp" | |
125 echo "livecodeserver" | |
126 echo "livescript" | |
127 echo "llvm" | |
128 echo "lsl" | |
129 echo "lua" | |
130 echo "makefile" | |
131 echo "markdown" | |
132 echo "mathematica" | |
133 echo "matlab" | |
134 echo "maxima" | |
135 echo "mel" | |
136 echo "mercury" | |
137 echo "mipsasm" | |
138 echo "mizar" | |
139 echo "mojolicious" | |
140 echo "monkey" | |
141 echo "moonscript" | |
142 echo "n1ql" | |
143 echo "nginx" | |
144 echo "nimrod" | |
145 echo "nix" | |
146 echo "nsis" | |
147 echo "objectivec" | |
148 echo "ocaml" | |
149 echo "openscad" | |
150 echo "oxygene" | |
151 echo "parser3" | |
152 echo "perl" | |
153 echo "pf" | |
154 echo "php" | |
155 echo "pony" | |
156 echo "powershell" | |
157 echo "processing" | |
158 echo "profile" | |
159 echo "prolog" | |
160 echo "protobuf" | |
161 echo "puppet" | |
162 echo "purebasic" | |
163 echo "python" | |
164 echo "q" | |
165 echo "qml" | |
166 echo "rib" | |
167 echo "r" | |
168 echo "roboconf" | |
169 echo "routeros" | |
170 echo "rsl" | |
171 echo "ruby" | |
172 echo "ruleslanguage" | |
173 echo "rust" | |
174 echo "scala" | |
175 echo "scheme" | |
176 echo "scilab" | |
177 echo "scss" | |
178 echo "shell" | |
179 echo "smali" | |
180 echo "smalltalk" | |
181 echo "sml" | |
182 echo "sqf" | |
183 echo "sql" | |
184 echo "stan" | |
185 echo "stata" | |
186 echo "step21" | |
187 echo "stylus" | |
188 echo "subunit" | |
189 echo "swift" | |
190 echo "taggerscript" | |
191 echo "tap" | |
192 echo "tcl" | |
193 echo "tex" | |
194 echo "thrift" | |
195 echo "tp" | |
196 echo "twig" | |
197 echo "typescript" | |
198 echo "vala" | |
199 echo "vbnet" | |
200 echo "vbscript-html" | |
201 echo "vbscript" | |
202 echo "verilog" | |
203 echo "vhdl" | |
204 echo "vim" | |
205 echo "x86asm" | |
206 echo "xl" | |
207 echo "xml" | |
208 echo "xquery" | |
209 echo "yaml" | |
210 echo "zephir" | |
211 exit 0 | |
212 } | |
213 | |
214 durations() | |
215 { | |
216 echo "hour" | |
217 echo "day" | |
218 echo "week" | |
219 echo "month" | |
220 exit 0 | |
221 } | |
222 | |
223 usage() | |
224 { | |
225 cat 1>&2 <<-EOF | |
48
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
226 usage: paster [-LDpv] [-a author] [-l language] [-d duration] [-t title] filename host |
7 | 227 EOF |
228 exit 1 | |
229 } | |
230 | |
231 send() | |
232 { | |
48
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
233 if [ $public -eq 1 ]; then |
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
234 with_private="--data private=off" |
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
235 else |
7 | 236 with_private="--data private=on" |
237 fi | |
48
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
238 |
7 | 239 if [ $verbose -eq 0 ]; then |
240 with_verbose="-s" | |
61
a93f4e3313e9
misc: add a raw option in POST data
David Demelier <markand@malikania.fr>
parents:
60
diff
changeset
|
241 else |
a93f4e3313e9
misc: add a raw option in POST data
David Demelier <markand@malikania.fr>
parents:
60
diff
changeset
|
242 with_verbose="-i" |
7 | 243 fi |
244 | |
61
a93f4e3313e9
misc: add a raw option in POST data
David Demelier <markand@malikania.fr>
parents:
60
diff
changeset
|
245 curl -L -X POST \ |
7 | 246 --data author="$author" \ |
247 --data language="$language" \ | |
248 --data duration="$duration" \ | |
249 --data title="$title" \ | |
61
a93f4e3313e9
misc: add a raw option in POST data
David Demelier <markand@malikania.fr>
parents:
60
diff
changeset
|
250 --data raw="on" \ |
7 | 251 --data-urlencode code@"$1" \ |
252 $with_private \ | |
253 $with_verbose \ | |
254 "$2"/new | |
255 } | |
256 | |
257 if ! command -v curl >/dev/null 2>&1; then | |
258 die "abort: curl is required" | |
259 fi | |
260 | |
48
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
261 while getopts "LDa:d:l:pt:v" opt; do |
7 | 262 case "$opt" in |
263 D) | |
264 durations | |
265 ;; | |
266 L) | |
267 languages | |
268 ;; | |
269 a) | |
270 author="$OPTARG" | |
271 ;; | |
272 d) | |
273 duration="$OPTARG" | |
274 ;; | |
275 l) | |
276 language="$OPTARG" | |
277 ;; | |
48
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
278 p) |
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
279 public=1 |
fa7125489435
paster: make private pastes by default, closes #2481
David Demelier <markand@malikania.fr>
parents:
7
diff
changeset
|
280 ;; |
7 | 281 t) |
282 title="$OPTARG" | |
283 ;; | |
284 v) | |
285 verbose=1 | |
286 ;; | |
287 *) | |
288 usage | |
289 ;; | |
290 esac | |
291 done | |
292 | |
293 shift $((OPTIND - 1)) | |
294 | |
295 if [ "$#" -ne 2 ]; then | |
296 usage | |
297 fi | |
298 | |
61
a93f4e3313e9
misc: add a raw option in POST data
David Demelier <markand@malikania.fr>
parents:
60
diff
changeset
|
299 send "$1" "$2" |