63 lines
1.6 KiB
Bash
63 lines
1.6 KiB
Bash
#! /bin/bash
|
|
set -e
|
|
|
|
ARGS=()
|
|
|
|
# Use WEBDAV_USERNAME as default, if provided.
|
|
if [ -z "$PLUGIN_USERNAME" ] && [ -n "$WEBDAV_USERNAME" ]; then
|
|
PLUGIN_USERNAME="$WEBDAV_USERNAME"
|
|
fi
|
|
|
|
# Use WEBDAV_PASSWORD as default, if provided.
|
|
if [ -z "$PLUGIN_PASSWORD" ] && [ -n "$WEBDAV_PASSWORD" ]; then
|
|
PLUGIN_PASSWORD="$WEBDAV_PASSWORD"
|
|
fi
|
|
|
|
# If username and password are provided, add auth
|
|
if [ -n "$PLUGIN_USERNAME" ] && [ -n "$PLUGIN_PASSWORD" ]; then
|
|
ARGS+=(--user "${PLUGIN_USERNAME}:${PLUGIN_PASSWORD}")
|
|
fi
|
|
|
|
# Use a proxy, if one is specified
|
|
if [ -n "$PLUGIN_PROXY_URL" ]; then
|
|
ARGS+=(--proxy "${PLUGIN_PROXY_URL}")
|
|
fi
|
|
|
|
# If a timeout is specified, make use of it.
|
|
if [ -n "$PLUGIN_TIMEOUT" ]; then
|
|
ARGS+=(--max-time "${PLUGIN_TIMEOUT}")
|
|
fi
|
|
|
|
# Set PLUGIN_ATTEMPTS to one if nothing else is specified
|
|
if [ -z "$PLUGIN_ATTEMPTS" ]; then
|
|
PLUGIN_ATTEMPTS=1
|
|
fi
|
|
|
|
#if [ -n "$PLUGIN_FILE_GLOB" ]; then
|
|
# FILES={$(eval find "$PLUGIN_FILE_GLOB"|paste -s -d',')}
|
|
# echo "$PLUGIN_FILE"
|
|
#fi
|
|
|
|
if [ -n "$PLUGIN_MAKE_FOLDER_AT" ]; then
|
|
curl --silent ${ARGS[@]} -X MKCOL "$PLUGIN_MAKE_FOLDER_AT"
|
|
fi
|
|
|
|
# Repeat the upload as long as specified.
|
|
while [ "${PLUGIN_ATTEMPTS}" -gt 0 ]; do
|
|
|
|
# Uploading the file
|
|
for file in $(eval find "$PLUGIN_FILE_GLOB")
|
|
do
|
|
curl --fail-with-body --show-error --silent ${ARGS[@]} --upload-file "$file" "$PLUGIN_DESTINATION"
|
|
done
|
|
|
|
# Show messages in case uploads have failed
|
|
[ "$PLUGIN_ATTEMPTS" -gt 1 ] && {
|
|
echo "[INFO] Upload failed. Attempting a new upload, if possible."
|
|
}
|
|
|
|
sleep 5
|
|
PLUGIN_ATTEMPTS=$((PLUGIN_ATTEMPTS-1))
|
|
|
|
done
|