annotate bin/db @ 221:152b34da1f13

Add notes
author zegervdv <zegervdv@me.com>
date Sun, 11 Jan 2015 18:36:10 +0100
parents d0cd259345f3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
126
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1 #!/usr/bin/env bash
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
2 #
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
3 # Dropbox Uploader
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
4 #
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
5 # Copyright (C) 2010-2014 Andrea Fabrizi <[email protected]>
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
6 #
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
7 # This program is free software; you can redistribute it and/or modify
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
8 # it under the terms of the GNU General Public License as published by
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
9 # the Free Software Foundation; either version 2 of the License, or
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
10 # (at your option) any later version.
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
11 #
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
15 # GNU General Public License for more details.
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
16 #
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
17 # You should have received a copy of the GNU General Public License
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
18 # along with this program; if not, write to the Free Software
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
19 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
20 #
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
21
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
22 #Default configuration file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
23 CONFIG_FILE=~/.dropbox_uploader
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
24
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
25 #Default chunk size in Mb for the upload process
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
26 #It is recommended to increase this value only if you have enough free space on your /tmp partition
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
27 #Lower values may increase the number of http requests
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
28 CHUNK_SIZE=4
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
29
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
30 #Curl location
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
31 #If not set, curl will be searched into the $PATH
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
32 #CURL_BIN="/usr/bin/curl"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
33
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
34 #Default values
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
35 TMP_DIR="/tmp"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
36 DEBUG=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
37 QUIET=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
38 SHOW_PROGRESSBAR=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
39 SKIP_EXISTING_FILES=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
40 ERROR_STATUS=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
41
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
42 #Don't edit these...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
43 API_REQUEST_TOKEN_URL="https://api.dropbox.com/1/oauth/request_token"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
44 API_USER_AUTH_URL="https://www2.dropbox.com/1/oauth/authorize"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
45 API_ACCESS_TOKEN_URL="https://api.dropbox.com/1/oauth/access_token"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
46 API_CHUNKED_UPLOAD_URL="https://api-content.dropbox.com/1/chunked_upload"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
47 API_CHUNKED_UPLOAD_COMMIT_URL="https://api-content.dropbox.com/1/commit_chunked_upload"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
48 API_UPLOAD_URL="https://api-content.dropbox.com/1/files_put"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
49 API_DOWNLOAD_URL="https://api-content.dropbox.com/1/files"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
50 API_DELETE_URL="https://api.dropbox.com/1/fileops/delete"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
51 API_MOVE_URL="https://api.dropbox.com/1/fileops/move"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
52 API_COPY_URL="https://api.dropbox.com/1/fileops/copy"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
53 API_METADATA_URL="https://api.dropbox.com/1/metadata"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
54 API_INFO_URL="https://api.dropbox.com/1/account/info"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
55 API_MKDIR_URL="https://api.dropbox.com/1/fileops/create_folder"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
56 API_SHARES_URL="https://api.dropbox.com/1/shares"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
57 APP_CREATE_URL="https://www2.dropbox.com/developers/apps"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
58 RESPONSE_FILE="$TMP_DIR/du_resp_$RANDOM"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
59 CHUNK_FILE="$TMP_DIR/du_chunk_$RANDOM"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
60 TEMP_FILE="$TMP_DIR/du_tmp_$RANDOM"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
61 BIN_DEPS="sed basename date grep stat dd mkdir"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
62 VERSION="0.14"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
63
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
64 umask 077
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
65
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
66 #Check the shell
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
67 if [ -z "$BASH_VERSION" ]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
68 echo -e "Error: this script requires the BASH shell!"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
69 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
70 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
71
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
72 shopt -s nullglob #Bash allows filename patterns which match no files to expand to a null string, rather than themselves
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
73 shopt -s dotglob #Bash includes filenames beginning with a "." in the results of filename expansion
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
74
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
75 #Look for optional config file parameter
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
76 while getopts ":qpskdf:" opt; do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
77 case $opt in
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
78
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
79 f)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
80 CONFIG_FILE=$OPTARG
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
81 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
82
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
83 d)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
84 DEBUG=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
85 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
86
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
87 q)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
88 QUIET=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
89 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
90
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
91 p)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
92 SHOW_PROGRESSBAR=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
93 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
94
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
95 k)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
96 CURL_ACCEPT_CERTIFICATES="-k"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
97 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
98
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
99 s)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
100 SKIP_EXISTING_FILES=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
101 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
102
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
103 \?)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
104 echo "Invalid option: -$OPTARG" >&2
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
105 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
106 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
107
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
108 :)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
109 echo "Option -$OPTARG requires an argument." >&2
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
110 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
111 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
112
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
113 esac
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
114 done
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
115
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
116 if [[ $DEBUG != 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
117 echo $VERSION
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
118 set -x
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
119 RESPONSE_FILE="$TMP_DIR/du_resp_debug"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
120 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
121
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
122 if [[ $CURL_BIN == "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
123 BIN_DEPS="$BIN_DEPS curl"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
124 CURL_BIN="curl"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
125 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
126
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
127 #Dependencies check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
128 which $BIN_DEPS > /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
129 if [[ $? != 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
130 for i in $BIN_DEPS; do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
131 which $i > /dev/null ||
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
132 NOT_FOUND="$i $NOT_FOUND"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
133 done
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
134 echo -e "Error: Required program could not be found: $NOT_FOUND"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
135 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
136 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
137
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
138 #Check if readlink is installed and supports the -m option
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
139 #It's not necessary, so no problem if it's not installed
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
140 which readlink > /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
141 if [[ $? == 0 && $(readlink -m "//test" 2> /dev/null) == "/test" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
142 HAVE_READLINK=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
143 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
144 HAVE_READLINK=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
145 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
146
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
147 #Forcing to use the builtin printf, if it's present, because it's better
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
148 #otherwise the external printf program will be used
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
149 #Note that the external printf command can cause character encoding issues!
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
150 builtin printf "" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
151 if [[ $? == 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
152 PRINTF="builtin printf"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
153 PRINTF_OPT="-v o"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
154 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
155 PRINTF=$(which printf)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
156 if [[ $? != 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
157 echo -e "Error: Required program could not be found: printf"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
158 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
159 PRINTF_OPT=""
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
160 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
161
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
162 #Print the message based on $QUIET variable
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
163 function print
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
164 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
165 if [[ $QUIET == 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
166 echo -ne "$1";
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
167 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
168 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
169
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
170 #Returns unix timestamp
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
171 function utime
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
172 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
173 echo $(date +%s)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
174 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
175
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
176 #Remove temporary files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
177 function remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
178 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
179 if [[ $DEBUG == 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
180 rm -fr "$RESPONSE_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
181 rm -fr "$CHUNK_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
182 rm -fr "$TEMP_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
183 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
184 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
185
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
186 #Returns the file size in bytes
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
187 # generic GNU Linux: linux-gnu
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
188 # windows cygwin: cygwin
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
189 # raspberry pi: linux-gnueabihf
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
190 # macosx: darwin10.0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
191 # freebsd: FreeBSD
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
192 # qnap: linux-gnueabi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
193 # iOS: darwin9
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
194 function file_size
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
195 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
196 #Some embedded linux devices
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
197 if [[ $OSTYPE == "linux-gnueabi" || $OSTYPE == "linux-gnu" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
198 stat -c "%s" "$1"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
199 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
200
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
201 #Generic Unix
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
202 elif [[ ${OSTYPE:0:5} == "linux" || $OSTYPE == "cygwin" || ${OSTYPE:0:7} == "solaris" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
203 stat --format="%s" "$1"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
204 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
205
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
206 #BSD, OSX and other OSs
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
207 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
208 stat -f "%z" "$1"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
209 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
210 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
211 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
212
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
213 #Usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
214 function usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
215 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
216 echo -e "Dropbox Uploader v$VERSION"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
217 echo -e "Andrea Fabrizi - [email protected]\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
218 echo -e "Usage: $0 COMMAND [PARAMETERS]..."
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
219 echo -e "\nCommands:"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
220
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
221 echo -e "\t upload <LOCAL_FILE/DIR ...> <REMOTE_FILE/DIR>"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
222 echo -e "\t download <REMOTE_FILE/DIR> [LOCAL_FILE/DIR]"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
223 echo -e "\t delete <REMOTE_FILE/DIR>"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
224 echo -e "\t move <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
225 echo -e "\t copy <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
226 echo -e "\t mkdir <REMOTE_DIR>"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
227 echo -e "\t list [REMOTE_DIR]"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
228 echo -e "\t share <REMOTE_FILE>"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
229 echo -e "\t info"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
230 echo -e "\t unlink"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
231
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
232 echo -e "\nOptional parameters:"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
233 echo -e "\t-f <FILENAME> Load the configuration file from a specific file"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
234 echo -e "\t-s Skip already existing files when download/upload. Default: Overwrite"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
235 echo -e "\t-d Enable DEBUG mode"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
236 echo -e "\t-q Quiet mode. Don't show messages"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
237 echo -e "\t-p Show cURL progress meter"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
238 echo -e "\t-k Doesn't check for SSL certificates (insecure)"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
239
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
240 echo -en "\nFor more info and examples, please see the README file.\n\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
241 remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
242 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
243 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
244
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
245 #Check the curl exit code
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
246 function check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
247 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
248 CODE=$?
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
249
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
250 #Checking curl exit code
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
251 case $CODE in
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
252
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
253 #OK
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
254 0)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
255
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
256 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
257
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
258 #Proxy error
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
259 5)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
260 print "\nError: Couldn't resolve proxy. The given proxy host could not be resolved.\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
261
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
262 remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
263 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
264 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
265
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
266 #Missing CA certificates
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
267 60|58)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
268 print "\nError: cURL is not able to performs peer SSL certificate verification.\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
269 print "Please, install the default ca-certificates bundle.\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
270 print "To do this in a Debian/Ubuntu based system, try:\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
271 print " sudo apt-get install ca-certificates\n\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
272 print "If the problem persists, try to use the -k option (insecure).\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
273
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
274 remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
275 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
276 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
277
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
278 6)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
279 print "\nError: Couldn't resolve host.\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
280
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
281 remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
282 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
283 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
284
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
285 7)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
286 print "\nError: Couldn't connect to host.\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
287
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
288 remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
289 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
290 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
291
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
292 esac
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
293
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
294 #Checking response file for generic errors
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
295 if grep -q "HTTP/1.1 400" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
296 ERROR_MSG=$(sed -n -e 's/{"error": "\([^"]*\)"}/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
297
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
298 case $ERROR_MSG in
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
299 *access?attempt?failed?because?this?app?is?not?configured?to?have*)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
300 echo -e "\nError: The Permission type/Access level configured doesn't match the DropBox App settings!\nPlease run \"$0 unlink\" and try again."
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
301 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
302 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
303 esac
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
304
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
305 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
306
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
307 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
308
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
309 #Urlencode
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
310 function urlencode
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
311 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
312 local string="${1}"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
313 local strlen=${#string}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
314 local encoded=""
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
315
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
316 for (( pos=0 ; pos<strlen ; pos++ )); do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
317 c=${string:$pos:1}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
318 case "$c" in
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
319 [-_.~a-zA-Z0-9] ) o="${c}" ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
320 * ) $PRINTF $PRINTF_OPT '%%%02x' "'$c"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
321 esac
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
322 encoded+="${o}"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
323 done
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
324
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
325 echo "$encoded"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
326 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
327
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
328 function normalize_path
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
329 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
330 path=$(echo -e "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
331 if [[ $HAVE_READLINK == 1 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
332 new_path=$(readlink -m "$path")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
333
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
334 #Adding back the final slash, if present in the source
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
335 if [[ "${path: -1}" == "/" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
336 new_path="$new_path/"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
337 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
338
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
339 echo "$new_path"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
340 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
341 echo "$path"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
342 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
343 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
344
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
345 #Check if it's a file or directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
346 #Returns FILE/DIR/ERR
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
347 function db_stat
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
348 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
349 local FILE=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
350
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
351 #Checking if it's a file or a directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
352 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" "$API_METADATA_URL/$ACCESS_LEVEL/$(urlencode "$FILE")?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
353 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
354
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
355 #Even if the file/dir has been deleted from DropBox we receive a 200 OK response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
356 #So we must check if the file exists or if it has been deleted
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
357 if grep -q "\"is_deleted\":" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
358 local IS_DELETED=$(sed -n 's/.*"is_deleted":.\([^,]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
359 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
360 local IS_DELETED="false"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
361 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
362
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
363 #Exits...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
364 grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
365 if [[ $? == 0 && $IS_DELETED != "true" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
366
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
367 local IS_DIR=$(sed -n 's/^\(.*\)\"contents":.\[.*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
368
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
369 #It's a directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
370 if [[ $IS_DIR != "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
371 echo "DIR"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
372 #It's a file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
373 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
374 echo "FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
375 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
376
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
377 #Doesn't exists
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
378 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
379 echo "ERR"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
380 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
381 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
382
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
383 #Generic upload wrapper around db_upload_file and db_upload_dir functions
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
384 #$1 = Local source file/dir
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
385 #$2 = Remote destination file/dir
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
386 function db_upload
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
387 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
388 local SRC=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
389 local DST=$(normalize_path "$2")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
390
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
391 #Checking if the file/dir exists
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
392 if [[ ! -e $SRC && ! -d $SRC ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
393 print " > No such file or directory: $SRC\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
394 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
395 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
396 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
397
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
398 #Checking if the file/dir has read permissions
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
399 if [[ ! -r $SRC ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
400 print " > Error reading file $SRC: permission denied\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
401 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
402 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
403 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
404
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
405 TYPE=$(db_stat "$DST")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
406
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
407 #If DST it's a file, do nothing, it's the default behaviour
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
408 if [[ $TYPE == "FILE" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
409 DST="$DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
410
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
411 #if DST doesn't exists and doesn't ends with a /, it will be the destination file name
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
412 elif [[ $TYPE == "ERR" && "${DST: -1}" != "/" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
413 DST="$DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
414
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
415 #if DST doesn't exists and ends with a /, it will be the destination folder
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
416 elif [[ $TYPE == "ERR" && "${DST: -1}" == "/" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
417 local filename=$(basename "$SRC")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
418 DST="$DST/$filename"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
419
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
420 #If DST it'a directory, it will be the destination folder
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
421 elif [[ $TYPE == "DIR" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
422 local filename=$(basename "$SRC")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
423 DST="$DST/$filename"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
424 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
425
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
426 #It's a directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
427 if [[ -d $SRC ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
428 db_upload_dir "$SRC" "$DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
429
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
430 #It's a file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
431 elif [[ -e $SRC ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
432 db_upload_file "$SRC" "$DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
433
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
434 #Unsupported object...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
435 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
436 print " > Skipping not regular file \"$SRC\"\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
437 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
438 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
439
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
440 #Generic upload wrapper around db_chunked_upload_file and db_simple_upload_file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
441 #The final upload function will be choosen based on the file size
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
442 #$1 = Local source file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
443 #$2 = Remote destination file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
444 function db_upload_file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
445 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
446 local FILE_SRC=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
447 local FILE_DST=$(normalize_path "$2")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
448
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
449 shopt -s nocasematch
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
450
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
451 #Checking not allowed file names
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
452 basefile_dst=$(basename "$FILE_DST")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
453 if [[ $basefile_dst == "thumbs.db" || \
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
454 $basefile_dst == "desktop.ini" || \
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
455 $basefile_dst == ".ds_store" || \
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
456 $basefile_dst == "icon\r" || \
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
457 $basefile_dst == ".dropbox" || \
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
458 $basefile_dst == ".dropbox.attr" \
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
459 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
460 print " > Skipping not allowed file name \"$FILE_DST\"\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
461 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
462 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
463
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
464 shopt -u nocasematch
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
465
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
466 #Checking file size
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
467 FILE_SIZE=$(file_size "$FILE_SRC")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
468
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
469 #Checking if the file already exists
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
470 TYPE=$(db_stat "$FILE_DST")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
471 if [[ $TYPE != "ERR" && $SKIP_EXISTING_FILES == 1 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
472 print " > Skipping already existing file \"$FILE_DST\"\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
473 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
474 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
475
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
476 if [[ $FILE_SIZE -gt 157286000 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
477 #If the file is greater than 150Mb, the chunked_upload API will be used
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
478 db_chunked_upload_file "$FILE_SRC" "$FILE_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
479 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
480 db_simple_upload_file "$FILE_SRC" "$FILE_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
481 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
482
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
483 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
484
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
485 #Simple file upload
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
486 #$1 = Local source file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
487 #$2 = Remote destination file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
488 function db_simple_upload_file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
489 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
490 local FILE_SRC=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
491 local FILE_DST=$(normalize_path "$2")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
492
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
493 if [[ $SHOW_PROGRESSBAR == 1 && $QUIET == 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
494 CURL_PARAMETERS="--progress-bar"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
495 LINE_CR="\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
496 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
497 CURL_PARAMETERS="-s"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
498 LINE_CR=""
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
499 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
500
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
501 print " > Uploading \"$FILE_SRC\" to \"$FILE_DST\"... $LINE_CR"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
502 $CURL_BIN $CURL_ACCEPT_CERTIFICATES $CURL_PARAMETERS -i --globoff -o "$RESPONSE_FILE" --upload-file "$FILE_SRC" "$API_UPLOAD_URL/$ACCESS_LEVEL/$(urlencode "$FILE_DST")?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
503 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
504
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
505 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
506 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
507 print "DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
508 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
509 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
510 print "An error occurred requesting /upload\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
511 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
512 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
513 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
514
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
515 #Chunked file upload
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
516 #$1 = Local source file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
517 #$2 = Remote destination file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
518 function db_chunked_upload_file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
519 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
520 local FILE_SRC=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
521 local FILE_DST=$(normalize_path "$2")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
522
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
523 print " > Uploading \"$FILE_SRC\" to \"$FILE_DST\""
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
524
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
525 local FILE_SIZE=$(file_size "$FILE_SRC")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
526 local OFFSET=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
527 local UPLOAD_ID=""
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
528 local UPLOAD_ERROR=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
529 local CHUNK_PARAMS=""
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
530
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
531 #Uploading chunks...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
532 while ([[ $OFFSET != $FILE_SIZE ]]); do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
533
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
534 let OFFSET_MB=$OFFSET/1024/1024
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
535
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
536 #Create the chunk
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
537 dd if="$FILE_SRC" of="$CHUNK_FILE" bs=1048576 skip=$OFFSET_MB count=$CHUNK_SIZE 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
538
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
539 #Only for the first request these parameters are not included
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
540 if [[ $OFFSET != 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
541 CHUNK_PARAMS="upload_id=$UPLOAD_ID&offset=$OFFSET"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
542 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
543
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
544 #Uploading the chunk...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
545 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --upload-file "$CHUNK_FILE" "$API_CHUNKED_UPLOAD_URL?$CHUNK_PARAMS&oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
546 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
547
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
548 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
549 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
550 print "."
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
551 UPLOAD_ERROR=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
552 UPLOAD_ID=$(sed -n 's/.*"upload_id": *"*\([^"]*\)"*.*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
553 OFFSET=$(sed -n 's/.*"offset": *\([^}]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
554 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
555 print "*"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
556 let UPLOAD_ERROR=$UPLOAD_ERROR+1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
557
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
558 #On error, the upload is retried for max 3 times
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
559 if [[ $UPLOAD_ERROR -gt 2 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
560 print " FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
561 print "An error occurred requesting /chunked_upload\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
562 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
563 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
564 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
565 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
566
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
567 done
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
568
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
569 UPLOAD_ERROR=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
570
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
571 #Commit the upload
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
572 while (true); do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
573
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
574 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "upload_id=$UPLOAD_ID&oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM" "$API_CHUNKED_UPLOAD_COMMIT_URL/$ACCESS_LEVEL/$(urlencode "$FILE_DST")" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
575 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
576
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
577 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
578 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
579 print "."
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
580 UPLOAD_ERROR=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
581 break
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
582 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
583 print "*"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
584 let UPLOAD_ERROR=$UPLOAD_ERROR+1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
585
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
586 #On error, the commit is retried for max 3 times
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
587 if [[ $UPLOAD_ERROR -gt 2 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
588 print " FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
589 print "An error occurred requesting /commit_chunked_upload\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
590 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
591 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
592 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
593 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
594
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
595 done
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
596
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
597 print " DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
598 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
599
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
600 #Directory upload
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
601 #$1 = Local source dir
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
602 #$2 = Remote destination dir
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
603 function db_upload_dir
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
604 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
605 local DIR_SRC=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
606 local DIR_DST=$(normalize_path "$2")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
607
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
608 #Creatig remote directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
609 db_mkdir "$DIR_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
610
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
611 for file in "$DIR_SRC/"*; do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
612 db_upload "$file" "$DIR_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
613 done
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
614 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
615
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
616 #Returns the free space on DropBox in bytes
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
617 function db_free_quota
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
618 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
619 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM" "$API_INFO_URL" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
620 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
621
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
622 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
623 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
624
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
625 quota=$(sed -n 's/.*"quota": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
626 used=$(sed -n 's/.*"normal": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
627 let free_quota=$quota-$used
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
628 echo $free_quota
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
629
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
630 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
631 echo 0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
632 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
633 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
634
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
635 #Generic download wrapper
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
636 #$1 = Remote source file/dir
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
637 #$2 = Local destination file/dir
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
638 function db_download
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
639 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
640 local SRC=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
641 local DST=$(normalize_path "$2")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
642
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
643 TYPE=$(db_stat "$SRC")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
644
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
645 #It's a directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
646 if [[ $TYPE == "DIR" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
647
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
648 #If the DST folder is not specified, I assume that is the current directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
649 if [[ $DST == "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
650 DST="."
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
651 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
652
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
653 #Checking if the destination directory exists
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
654 if [[ ! -d $DST ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
655 local basedir=""
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
656 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
657 local basedir=$(basename "$SRC")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
658 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
659
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
660 local DEST_DIR=$(normalize_path "$DST/$basedir")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
661 print " > Downloading \"$SRC\" to \"$DEST_DIR\"... \n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
662 print " > Creating local directory \"$DEST_DIR\"... "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
663 mkdir -p "$DEST_DIR"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
664
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
665 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
666 if [[ $? == 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
667 print "DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
668 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
669 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
670 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
671 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
672 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
673
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
674 #Extracting directory content [...]
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
675 #and replacing "}, {" with "}\n{"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
676 #I don't like this piece of code... but seems to be the only way to do this with SED, writing a portable code...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
677 local DIR_CONTENT=$(sed -n 's/.*: \[{\(.*\)/\1/p' "$RESPONSE_FILE" | sed 's/}, *{/}\
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
678 {/g')
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
679
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
680 #Extracting files and subfolders
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
681 TMP_DIR_CONTENT_FILE="${RESPONSE_FILE}_$RANDOM"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
682 echo "$DIR_CONTENT" | sed -n 's/.*"path": *"\([^"]*\)",.*"is_dir": *\([^"]*\),.*/\1:\2/p' > $TMP_DIR_CONTENT_FILE
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
683
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
684 #For each entry...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
685 while read -r line; do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
686
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
687 local FILE=${line%:*}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
688 local TYPE=${line#*:}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
689
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
690 #Removing unneeded /
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
691 FILE=${FILE##*/}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
692
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
693 if [[ $TYPE == "false" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
694 db_download_file "$SRC/$FILE" "$DEST_DIR/$FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
695 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
696 db_download "$SRC/$FILE" "$DEST_DIR"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
697 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
698
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
699 done < $TMP_DIR_CONTENT_FILE
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
700
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
701 rm -fr $TMP_DIR_CONTENT_FILE
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
702
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
703 #It's a file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
704 elif [[ $TYPE == "FILE" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
705
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
706 #Checking DST
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
707 if [[ $DST == "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
708 DST=$(basename "$SRC")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
709 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
710
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
711 #If the destination is a directory, the file will be download into
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
712 if [[ -d $DST ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
713 DST="$DST/$SRC"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
714 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
715
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
716 db_download_file "$SRC" "$DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
717
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
718 #Doesn't exists
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
719 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
720 print " > No such file or directory: $SRC\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
721 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
722 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
723 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
724 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
725
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
726 #Simple file download
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
727 #$1 = Remote source file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
728 #$2 = Local destination file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
729 function db_download_file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
730 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
731 local FILE_SRC=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
732 local FILE_DST=$(normalize_path "$2")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
733
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
734 if [[ $SHOW_PROGRESSBAR == 1 && $QUIET == 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
735 CURL_PARAMETERS="--progress-bar"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
736 LINE_CR="\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
737 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
738 CURL_PARAMETERS="-s"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
739 LINE_CR=""
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
740 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
741
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
742 #Checking if the file already exists
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
743 if [[ -e $FILE_DST && $SKIP_EXISTING_FILES == 1 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
744 print " > Skipping already existing file \"$FILE_DST\"\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
745 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
746 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
747
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
748 #Creating the empty file, that for two reasons:
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
749 #1) In this way I can check if the destination file is writable or not
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
750 #2) Curl doesn't automatically creates files with 0 bytes size
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
751 dd if=/dev/zero of="$FILE_DST" count=0 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
752 if [[ $? != 0 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
753 print " > Error writing file $FILE_DST: permission denied\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
754 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
755 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
756 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
757
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
758 print " > Downloading \"$FILE_SRC\" to \"$FILE_DST\"... $LINE_CR"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
759 $CURL_BIN $CURL_ACCEPT_CERTIFICATES $CURL_PARAMETERS --globoff -D "$RESPONSE_FILE" -o "$FILE_DST" "$API_DOWNLOAD_URL/$ACCESS_LEVEL/$(urlencode "$FILE_SRC")?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
760 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
761
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
762 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
763 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
764 print "DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
765 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
766 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
767 rm -fr "$FILE_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
768 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
769 return
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
770 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
771 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
772
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
773 #Prints account info
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
774 function db_account_info
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
775 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
776 print "Dropbox Uploader v$VERSION\n\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
777 print " > Getting info... "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
778 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM" "$API_INFO_URL" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
779 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
780
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
781 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
782 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
783
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
784 name=$(sed -n 's/.*"display_name": "\([^"]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
785 echo -e "\n\nName:\t$name"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
786
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
787 uid=$(sed -n 's/.*"uid": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
788 echo -e "UID:\t$uid"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
789
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
790 email=$(sed -n 's/.*"email": "\([^"]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
791 echo -e "Email:\t$email"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
792
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
793 quota=$(sed -n 's/.*"quota": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
794 let quota_mb=$quota/1024/1024
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
795 echo -e "Quota:\t$quota_mb Mb"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
796
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
797 used=$(sed -n 's/.*"normal": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
798 let used_mb=$used/1024/1024
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
799 echo -e "Used:\t$used_mb Mb"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
800
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
801 let free_mb=($quota-$used)/1024/1024
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
802 echo -e "Free:\t$free_mb Mb"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
803
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
804 echo ""
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
805
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
806 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
807 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
808 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
809 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
810 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
811
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
812 #Account unlink
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
813 function db_unlink
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
814 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
815 echo -ne "Are you sure you want unlink this script from your Dropbox account? [y/n]"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
816 read answer
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
817 if [[ $answer == "y" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
818 rm -fr "$CONFIG_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
819 echo -ne "DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
820 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
821 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
822
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
823 #Delete a remote file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
824 #$1 = Remote file to delete
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
825 function db_delete
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
826 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
827 local FILE_DST=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
828
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
829 print " > Deleting \"$FILE_DST\"... "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
830 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM&root=$ACCESS_LEVEL&path=$(urlencode "$FILE_DST")" "$API_DELETE_URL" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
831 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
832
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
833 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
834 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
835 print "DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
836 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
837 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
838 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
839 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
840 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
841
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
842 #Move/Rename a remote file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
843 #$1 = Remote file to rename or move
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
844 #$2 = New file name or location
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
845 function db_move
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
846 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
847 local FILE_SRC=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
848 local FILE_DST=$(normalize_path "$2")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
849
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
850 TYPE=$(db_stat "$FILE_DST")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
851
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
852 #If the destination it's a directory, the source will be moved into it
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
853 if [[ $TYPE == "DIR" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
854 local filename=$(basename "$FILE_SRC")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
855 FILE_DST=$(normalize_path "$FILE_DST/$filename")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
856 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
857
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
858 print " > Moving \"$FILE_SRC\" to \"$FILE_DST\" ... "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
859 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM&root=$ACCESS_LEVEL&from_path=$(urlencode "$FILE_SRC")&to_path=$(urlencode "$FILE_DST")" "$API_MOVE_URL" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
860 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
861
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
862 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
863 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
864 print "DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
865 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
866 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
867 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
868 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
869 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
870
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
871 #Copy a remote file to a remote location
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
872 #$1 = Remote file to rename or move
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
873 #$2 = New file name or location
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
874 function db_copy
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
875 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
876 local FILE_SRC=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
877 local FILE_DST=$(normalize_path "$2")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
878
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
879 TYPE=$(db_stat "$FILE_DST")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
880
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
881 #If the destination it's a directory, the source will be copied into it
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
882 if [[ $TYPE == "DIR" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
883 local filename=$(basename "$FILE_SRC")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
884 FILE_DST=$(normalize_path "$FILE_DST/$filename")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
885 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
886
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
887 print " > Copying \"$FILE_SRC\" to \"$FILE_DST\" ... "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
888 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM&root=$ACCESS_LEVEL&from_path=$(urlencode "$FILE_SRC")&to_path=$(urlencode "$FILE_DST")" "$API_COPY_URL" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
889 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
890
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
891 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
892 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
893 print "DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
894 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
895 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
896 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
897 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
898 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
899
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
900 #Create a new directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
901 #$1 = Remote directory to create
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
902 function db_mkdir
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
903 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
904 local DIR_DST=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
905
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
906 print " > Creating Directory \"$DIR_DST\"... "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
907 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM&root=$ACCESS_LEVEL&path=$(urlencode "$DIR_DST")" "$API_MKDIR_URL" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
908 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
909
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
910 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
911 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
912 print "DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
913 elif grep -q "^HTTP/1.1 403 Forbidden" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
914 print "ALREADY EXISTS\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
915 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
916 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
917 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
918 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
919 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
920
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
921 #List remote directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
922 #$1 = Remote directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
923 function db_list
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
924 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
925 local DIR_DST=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
926
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
927 print " > Listing \"$DIR_DST\"... "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
928 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" "$API_METADATA_URL/$ACCESS_LEVEL/$(urlencode "$DIR_DST")?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
929 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
930
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
931 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
932 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
933
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
934 local IS_DIR=$(sed -n 's/^\(.*\)\"contents":.\[.*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
935
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
936 #It's a directory
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
937 if [[ $IS_DIR != "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
938
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
939 print "DONE\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
940
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
941 #Extracting directory content [...]
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
942 #and replacing "}, {" with "}\n{"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
943 #I don't like this piece of code... but seems to be the only way to do this with SED, writing a portable code...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
944 local DIR_CONTENT=$(sed -n 's/.*: \[{\(.*\)/\1/p' "$RESPONSE_FILE" | sed 's/}, *{/}\
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
945 {/g')
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
946
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
947 #Converting escaped quotes to unicode format
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
948 echo "$DIR_CONTENT" | sed 's/\\"/\\u0022/' > "$TEMP_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
949
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
950 #Extracting files and subfolders
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
951 rm -fr "$RESPONSE_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
952 while read -r line; do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
953
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
954 local FILE=$(echo "$line" | sed -n 's/.*"path": *"\([^"]*\)".*/\1/p')
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
955 local IS_DIR=$(echo "$line" | sed -n 's/.*"is_dir": *\([^,]*\).*/\1/p')
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
956 local SIZE=$(echo "$line" | sed -n 's/.*"bytes": *\([0-9]*\).*/\1/p')
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
957
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
958 echo -e "$FILE:$IS_DIR;$SIZE" >> "$RESPONSE_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
959
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
960 done < "$TEMP_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
961
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
962 #Looking for the biggest file size
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
963 #to calculate the padding to use
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
964 local padding=0
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
965 while read -r line; do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
966 local FILE=${line%:*}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
967 local META=${line##*:}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
968 local SIZE=${META#*;}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
969
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
970 if [[ ${#SIZE} -gt $padding ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
971 padding=${#SIZE}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
972 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
973 done < "$RESPONSE_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
974
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
975 #For each entry, printing directories...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
976 while read -r line; do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
977
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
978 local FILE=${line%:*}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
979 local META=${line##*:}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
980 local TYPE=${META%;*}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
981 local SIZE=${META#*;}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
982
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
983 #Removing unneeded /
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
984 FILE=${FILE##*/}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
985
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
986 if [[ $TYPE == "true" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
987 FILE=$(echo -e "$FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
988 $PRINTF " [D] %-${padding}s %s\n" "$SIZE" "$FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
989 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
990
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
991 done < "$RESPONSE_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
992
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
993 #For each entry, printing files...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
994 while read -r line; do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
995
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
996 local FILE=${line%:*}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
997 local META=${line##*:}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
998 local TYPE=${META%;*}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
999 local SIZE=${META#*;}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1000
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1001 #Removing unneeded /
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1002 FILE=${FILE##*/}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1003
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1004 if [[ $TYPE == "false" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1005 FILE=$(echo -e "$FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1006 $PRINTF " [F] %-${padding}s %s\n" "$SIZE" "$FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1007 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1008
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1009 done < "$RESPONSE_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1010
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1011 #It's a file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1012 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1013 print "FAILED: $DIR_DST is not a directory!\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1014 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1015 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1016
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1017 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1018 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1019 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1020 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1021 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1022
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1023 #Share remote file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1024 #$1 = Remote file
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1025 function db_share
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1026 {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1027 local FILE_DST=$(normalize_path "$1")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1028
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1029 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" "$API_SHARES_URL/$ACCESS_LEVEL/$(urlencode "$FILE_DST")?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM&short_url=false" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1030 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1031
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1032 #Check
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1033 if grep -q "^HTTP/1.1 200 OK" "$RESPONSE_FILE"; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1034 print " > Share link: "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1035 SHARE_LINK=$(sed -n 's/.*"url": "\([^"]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1036 echo "$SHARE_LINK"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1037 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1038 print "FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1039 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1040 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1041 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1042
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1043 ################
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1044 #### SETUP ####
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1045 ################
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1046
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1047 #CHECKING FOR AUTH FILE
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1048 if [[ -e $CONFIG_FILE ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1049
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1050 #Loading data... and change old format config if necesary.
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1051 source "$CONFIG_FILE" 2>/dev/null || {
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1052 sed -i'' 's/:/=/' "$CONFIG_FILE" && source "$CONFIG_FILE" 2>/dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1053 }
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1054
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1055 #Checking the loaded data
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1056 if [[ $APPKEY == "" || $APPSECRET == "" || $OAUTH_ACCESS_TOKEN_SECRET == "" || $OAUTH_ACCESS_TOKEN == "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1057 echo -ne "Error loading data from $CONFIG_FILE...\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1058 echo -ne "It is recommended to run $0 unlink\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1059 remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1060 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1061 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1062
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1063 #Back compatibility with previous Dropbox Uploader versions
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1064 if [[ $ACCESS_LEVEL == "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1065 ACCESS_LEVEL="dropbox"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1066 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1067
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1068 #NEW SETUP...
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1069 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1070
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1071 echo -ne "\n This is the first time you run this script.\n\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1072 echo -ne " 1) Open the following URL in your Browser, and log in using your account: $APP_CREATE_URL\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1073 echo -ne " 2) Click on \"Create App\", then select \"Dropbox API app\"\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1074 echo -ne " 3) Select \"Files and datastores\"\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1075 echo -ne " 4) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1076 echo -ne " 5) Enter the \"App Name\" that you prefer (e.g. MyUploader$RANDOM$RANDOM$RANDOM)\n\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1077
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1078 echo -ne " Now, click on the \"Create App\" button.\n\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1079
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1080 echo -ne " When your new App is successfully created, please type the\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1081 echo -ne " App Key, App Secret and the Permission type shown in the confirmation page:\n\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1082
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1083 #Getting the app key and secret from the user
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1084 while (true); do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1085
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1086 echo -n " # App key: "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1087 read APPKEY
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1088
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1089 echo -n " # App secret: "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1090 read APPSECRET
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1091
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1092 echo -n " # Permission type, App folder or Full Dropbox [a/f]: "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1093 read ACCESS_LEVEL
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1094
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1095 if [[ $ACCESS_LEVEL == "a" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1096 ACCESS_LEVEL="sandbox"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1097 ACCESS_MSG="App Folder"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1098 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1099 ACCESS_LEVEL="dropbox"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1100 ACCESS_MSG="Full Dropbox"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1101 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1102
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1103 echo -ne "\n > App key is $APPKEY, App secret is $APPSECRET and Access level is $ACCESS_MSG. Looks ok? [y/n]: "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1104 read answer
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1105 if [[ $answer == "y" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1106 break;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1107 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1108
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1109 done
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1110
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1111 #TOKEN REQUESTS
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1112 echo -ne "\n > Token request... "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1113 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM" "$API_REQUEST_TOKEN_URL" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1114 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1115 OAUTH_TOKEN_SECRET=$(sed -n 's/oauth_token_secret=\([a-z A-Z 0-9]*\).*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1116 OAUTH_TOKEN=$(sed -n 's/.*oauth_token=\([a-z A-Z 0-9]*\)/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1117
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1118 if [[ $OAUTH_TOKEN != "" && $OAUTH_TOKEN_SECRET != "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1119 echo -ne "OK\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1120 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1121 echo -ne " FAILED\n\n Please, check your App key and secret...\n\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1122 remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1123 exit 1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1124 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1125
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1126 while (true); do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1127
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1128 #USER AUTH
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1129 echo -ne "\n Please open the following URL in your browser, and allow Dropbox Uploader\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1130 echo -ne " to access your DropBox folder:\n\n --> ${API_USER_AUTH_URL}?oauth_token=$OAUTH_TOKEN\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1131 echo -ne "\nPress enter when done...\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1132 read
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1133
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1134 #API_ACCESS_TOKEN_URL
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1135 echo -ne " > Access Token request... "
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1136 $CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_TOKEN_SECRET&oauth_timestamp=$(utime)&oauth_nonce=$RANDOM" "$API_ACCESS_TOKEN_URL" 2> /dev/null
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1137 check_http_response
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1138 OAUTH_ACCESS_TOKEN_SECRET=$(sed -n 's/oauth_token_secret=\([a-z A-Z 0-9]*\)&.*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1139 OAUTH_ACCESS_TOKEN=$(sed -n 's/.*oauth_token=\([a-z A-Z 0-9]*\)&.*/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1140 OAUTH_ACCESS_UID=$(sed -n 's/.*uid=\([0-9]*\)/\1/p' "$RESPONSE_FILE")
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1141
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1142 if [[ $OAUTH_ACCESS_TOKEN != "" && $OAUTH_ACCESS_TOKEN_SECRET != "" && $OAUTH_ACCESS_UID != "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1143 echo -ne "OK\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1144
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1145 #Saving data in new format, compatible with source command.
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1146 echo "APPKEY=$APPKEY" > "$CONFIG_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1147 echo "APPSECRET=$APPSECRET" >> "$CONFIG_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1148 echo "ACCESS_LEVEL=$ACCESS_LEVEL" >> "$CONFIG_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1149 echo "OAUTH_ACCESS_TOKEN=$OAUTH_ACCESS_TOKEN" >> "$CONFIG_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1150 echo "OAUTH_ACCESS_TOKEN_SECRET=$OAUTH_ACCESS_TOKEN_SECRET" >> "$CONFIG_FILE"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1151
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1152 echo -ne "\n Setup completed!\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1153 break
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1154 else
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1155 print " FAILED\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1156 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1157 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1158
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1159 done;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1160
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1161 remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1162 exit $ERROR_STATUS
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1163 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1164
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1165 ################
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1166 #### START ####
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1167 ################
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1168
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1169 COMMAND=${@:$OPTIND:1}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1170 ARG1=${@:$OPTIND+1:1}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1171 ARG2=${@:$OPTIND+2:1}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1172
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1173 let argnum=$#-$OPTIND
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1174
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1175 #CHECKING PARAMS VALUES
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1176 case $COMMAND in
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1177
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1178 upload)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1179
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1180 if [[ $argnum -lt 2 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1181 usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1182 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1183
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1184 FILE_DST=${@:$#:1}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1185
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1186 for (( i=$OPTIND+1; i<$#; i++ )); do
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1187 FILE_SRC=${@:$i:1}
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1188 db_upload "$FILE_SRC" "/$FILE_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1189 done
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1190
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1191 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1192
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1193 download)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1194
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1195 if [[ $argnum -lt 1 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1196 usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1197 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1198
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1199 FILE_SRC=$ARG1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1200 FILE_DST=$ARG2
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1201
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1202 db_download "/$FILE_SRC" "$FILE_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1203
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1204 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1205
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1206 share)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1207
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1208 if [[ $argnum -lt 1 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1209 usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1210 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1211
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1212 FILE_DST=$ARG1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1213
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1214 db_share "/$FILE_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1215
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1216 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1217
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1218 info)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1219
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1220 db_account_info
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1221
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1222 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1223
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1224 delete|remove)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1225
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1226 if [[ $argnum -lt 1 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1227 usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1228 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1229
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1230 FILE_DST=$ARG1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1231
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1232 db_delete "/$FILE_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1233
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1234 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1235
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1236 move|rename)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1237
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1238 if [[ $argnum -lt 2 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1239 usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1240 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1241
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1242 FILE_SRC=$ARG1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1243 FILE_DST=$ARG2
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1244
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1245 db_move "/$FILE_SRC" "/$FILE_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1246
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1247 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1248
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1249 copy)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1250
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1251 if [[ $argnum -lt 2 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1252 usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1253 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1254
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1255 FILE_SRC=$ARG1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1256 FILE_DST=$ARG2
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1257
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1258 db_copy "/$FILE_SRC" "/$FILE_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1259
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1260 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1261
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1262 mkdir)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1263
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1264 if [[ $argnum -lt 1 ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1265 usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1266 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1267
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1268 DIR_DST=$ARG1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1269
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1270 db_mkdir "/$DIR_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1271
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1272 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1273
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1274 list)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1275
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1276 DIR_DST=$ARG1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1277
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1278 #Checking DIR_DST
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1279 if [[ $DIR_DST == "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1280 DIR_DST="/"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1281 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1282
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1283 db_list "/$DIR_DST"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1284
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1285 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1286
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1287 unlink)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1288
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1289 db_unlink
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1290
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1291 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1292
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1293 *)
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1294
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1295 if [[ $COMMAND != "" ]]; then
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1296 print "Error: Unknown command: $COMMAND\n\n"
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1297 ERROR_STATUS=1
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1298 fi
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1299 usage
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1300
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1301 ;;
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1302
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1303 esac
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1304
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1305 remove_temp_files
d0cd259345f3 Add Dropbox Uploader script
zegervdv <zegervdv@me.com>
parents:
diff changeset
1306 exit $ERROR_STATUS