Mercurial > imgup
annotate imgup.sh @ 30:584bef22b25e
misc: similar to paster, implement raw POST data
http://hg.malikania.fr/paster/rev/a93f4e3313e9
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 26 May 2022 11:37:50 +0200 |
parents | b74c1f165e51 |
children | 3e01d0147294 |
rev | line source |
---|---|
7
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 # |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 # imgup -- convenient front-end to a imgupd instance |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 # |
25
b74c1f165e51
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
4 # Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> |
7
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 # |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 # |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 # |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 author="Anonymous" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 title="Untitled" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 duration="day" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 public=0 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 verbose=0 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 die() |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 { |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 echo "$@" 1>&2 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 exit 1 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 } |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 durations() |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 { |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 echo "hour" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 echo "day" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 echo "week" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 echo "month" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 exit 0 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 } |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 usage() |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 { |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 cat 1>&2 <<-EOF |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 usage: imgup [-Dpv] [-a author] [-d duration] [-t title] filename host |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 EOF |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 exit 1 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 } |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 send() |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 { |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 if [ $public -eq 1 ]; then |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 with_private="-F private=off" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 else |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 with_private="-F private=on" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 fi |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 if [ $verbose -eq 0 ]; then |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 with_verbose="-s" |
30
584bef22b25e
misc: similar to paster, implement raw POST data
David Demelier <markand@malikania.fr>
parents:
25
diff
changeset
|
58 else |
584bef22b25e
misc: similar to paster, implement raw POST data
David Demelier <markand@malikania.fr>
parents:
25
diff
changeset
|
59 with_verbose="-i" |
7
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 fi |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
30
584bef22b25e
misc: similar to paster, implement raw POST data
David Demelier <markand@malikania.fr>
parents:
25
diff
changeset
|
62 curl -L -X POST \ |
7
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 -F author="$author" \ |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 -F duration="$duration" \ |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 -F title="$title" \ |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 -F filename=@"$1" \ |
30
584bef22b25e
misc: similar to paster, implement raw POST data
David Demelier <markand@malikania.fr>
parents:
25
diff
changeset
|
67 -F raw="on" \ |
7
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 $with_private \ |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 $with_verbose \ |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 "$2"/new |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 } |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 if ! command -v curl >/dev/null 2>&1; then |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 die "abort: curl is required" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 fi |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 while getopts "Da:d:pt:v" opt; do |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 case "$opt" in |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 D) |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 durations |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 ;; |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 a) |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 author="$OPTARG" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 ;; |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 d) |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 duration="$OPTARG" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 ;; |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 p) |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 public=1 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 ;; |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 t) |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 title="$OPTARG" |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 ;; |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 v) |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 verbose=1 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 ;; |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 *) |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 usage |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 ;; |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 esac |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 done |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 shift $((OPTIND - 1)) |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 if [ "$#" -ne 2 ]; then |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 usage |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 fi |
1cf90affaa33
misc: rename the project to imgup
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
30
584bef22b25e
misc: similar to paster, implement raw POST data
David Demelier <markand@malikania.fr>
parents:
25
diff
changeset
|
109 send "$1" "$2" |