mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2024-11-19 18:00:22 +01:00
133 lines
3.8 KiB
Bash
Executable File
133 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# DEPRECATED: https://github.com/rootzoll/raspiblitz/issues/2264#issuecomment-872655605
|
|
# script will stay on v1.7.1 ... but should be removed after that
|
|
|
|
# command info
|
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|
echo "# script to upload a file to DropBox (without third party libs)"
|
|
echo "# dropbox.upload.sh on [AUTHTOKEN]"
|
|
echo "# dropbox.upload.sh off"
|
|
echo "# dropbox.upload.sh upload [AUTHTOKEN] [FILEPATH]"
|
|
echo "# dropbox.upload.sh check [AUTHTOKEN]"
|
|
echo "# for Dropbox Setup with Authtoken, see:"
|
|
echo "# https://gist.github.com/vindard/e0cd3d41bb403a823f3b5002488e3f90"
|
|
echo "err='just informational output'"
|
|
exit 1
|
|
fi
|
|
|
|
source /mnt/hdd/raspiblitz.conf
|
|
|
|
# get first parameter
|
|
MODE="$1"
|
|
if [ "${MODE}" == "on" ]; then
|
|
|
|
# second parameter: dropbox auth token
|
|
authtoken="$2"
|
|
|
|
# get auth token from user if not given as second parameter
|
|
if [ ${#authtoken} -eq 0 ]; then
|
|
sudo touch /home/admin/.tmp
|
|
sudo chmod 777 /home/admin/.tmp
|
|
whiptail --title " Static Channel Backup on Dropbox " --inputbox "
|
|
Follow the steps described at the following link
|
|
to get the DropBox-Authtoken from your account:
|
|
https://github.com/rootzoll/raspiblitz/#a-dropbox-backup-target" 11 70 2>/home/admin/.tmp
|
|
authtoken=$(cat /home/admin/.tmp)
|
|
shred -u /home/admin/.tmp
|
|
fi
|
|
|
|
# set in config - that activates the dropbox back in background process
|
|
if [ ${#authtoken} -gt 0 ]; then
|
|
/home/admin/config.scripts/blitz.conf.sh set dropboxBackupTarget "${authtoken}"
|
|
fi
|
|
|
|
elif [ "${MODE}" == "off" ]; then
|
|
|
|
# to turn backup off - delete the parameter from the config file
|
|
/home/admin/config.scripts/blitz.conf.sh delete dropboxBackupTarget
|
|
|
|
elif [ "${MODE}" == "check" ]; then
|
|
|
|
# get needed second parameter
|
|
DROPBOX_APITOKEN="$2"
|
|
if [ ${#DROPBOX_APITOKEN} -eq 0 ]; then
|
|
echo "err='missing Parameter AUTHTOKEN'"
|
|
exit 1
|
|
fi
|
|
|
|
# run API check
|
|
curl -s -X POST https://api.dropboxapi.com/2/users/get_current_account \
|
|
--header "Authorization: Bearer "$DROPBOX_APITOKEN | grep rror
|
|
if [[ ! $? -eq 0 ]] ; then
|
|
echo "# Dropbox API Token worked"
|
|
echo "check=1"
|
|
else
|
|
echo "# Invalid Dropbox API Token!"
|
|
echo "check=0"
|
|
fi
|
|
|
|
elif [ "${MODE}" == "upload" ]; then
|
|
|
|
# get needed second parameter
|
|
DROPBOX_APITOKEN="$2"
|
|
if [ ${#DROPBOX_APITOKEN} -eq 0 ]; then
|
|
echo "err='missing Parameter AUTHTOKEN'"
|
|
exit 1
|
|
fi
|
|
|
|
# get needed third parameter
|
|
SOURCEFILE="$3"
|
|
if [ ${#SOURCEFILE} -eq 0 ]; then
|
|
echo "err='missing Parameter SOURCEFILE'"
|
|
exit 1
|
|
fi
|
|
|
|
source /mnt/hdd/raspiblitz.conf
|
|
if [ ${#hostname} -eq 0 ]; then
|
|
hostname="raspiblitz"
|
|
fi
|
|
|
|
DEVICE=$(echo "${hostname}" | awk '{print tolower($0)}' | sed -e 's/ /-/g')
|
|
BACKUPFOLDER=lndbackup-$DEVICE
|
|
FILENAME=$(basename "${SOURCEFILE}")
|
|
|
|
sudo curl -s -X POST https://content.dropboxapi.com/2/files/upload \
|
|
--header "Authorization: Bearer "${DROPBOX_APITOKEN}"" \
|
|
--header "Dropbox-API-Arg: {\"path\": \"/"$BACKUPFOLDER"/"$FILENAME"\",\"mode\": \"overwrite\",\"autorename\": true,\"mute\": false,\"strict_conflict\": false}" \
|
|
--header "Content-Type: application/octet-stream" \
|
|
--data-binary @$SOURCEFILE > /home/admin/.dropbox.tmp
|
|
safeResponse=$(sed 's/[^a-zA-Z0-9 ]//g' /home/admin/.dropbox.tmp)
|
|
sudo shred -u /home/admin/.dropbox.tmp
|
|
|
|
success=$(echo "${safeResponse}" | grep -c 'servermodified')
|
|
sizeZero=$(echo "${safeResponse}" | grep -c 'size 0')
|
|
if [ ${sizeZero} -gt 0 ]; then
|
|
echo "# Upload happened but is size zero"
|
|
echo "upload=0"
|
|
echo "err='size zero'"
|
|
echo "errMore='${safeResponse}'"
|
|
elif [ ${success} -gt 0 ] ; then
|
|
echo "# Successfully uploaded!"
|
|
echo "upload=1"
|
|
else
|
|
echo "# Unknown Error"
|
|
echo "upload=0"
|
|
echo "err='unknown'"
|
|
echo "errMore='${safeResponse}'"
|
|
fi
|
|
|
|
else
|
|
echo "err='unknown mode'"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|