annotate imgup.sh @ 36:575c90cafc7e default tip @

imgupd: use id as filename
author David Demelier <markand@malikania.fr>
date Thu, 16 Mar 2023 12:56:46 +0100
parents 3e01d0147294
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 #
35
3e01d0147294 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
4 # Copyright (c) 2020-2023 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"