mirror of
https://github.com/raspiblitz/raspiblitz.git
synced 2025-09-21 06:07:47 +02:00
introduce a upload prepare & check script
This commit is contained in:
117
home.admin/config.scripts/blitz.upload.sh
Normal file
117
home.admin/config.scripts/blitz.upload.sh
Normal file
@@ -0,0 +1,117 @@
|
||||
#!/bin/bash
|
||||
|
||||
# command info
|
||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||
echo "# use to prepare & check scp or web file upload to RaspiBlitz"
|
||||
echo "# blitz.upload.sh prepare-upload"
|
||||
echo "# blitz.upload.sh check-upload ?[scb|lnd-rescue]"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# get local ip
|
||||
source <(/home/admin/config.scripts/internet.sh status local)
|
||||
|
||||
# set upload path
|
||||
if [ -d "/mnt/hdd/temp" ]; then
|
||||
# HDD with temp directory is connected - the use it
|
||||
defaultUploadPath="/mnt/hdd/temp/upload"
|
||||
else
|
||||
# fallback if no HDD is connected
|
||||
defaultUploadPath="/home/bitcoin/temp/upload"
|
||||
fi
|
||||
|
||||
|
||||
# 1st PRAMETER action
|
||||
action="$1"
|
||||
|
||||
if [ ${action} = "prepare-upload" ]; then
|
||||
|
||||
# make sure that temp directory exists, is clear and can be written by user bitcoin
|
||||
sudo mkdir -p ${defaultUploadPath} 2>/dev/null
|
||||
sudo rm ${defaultUploadPath}/* 2>/dev/null
|
||||
sudo chown -R bitcoin:bitcoin ${defaultUploadPath} 2>/dev/null
|
||||
|
||||
echo "localip='${localip}'"
|
||||
echo "defaultUploadPath='${defaultUploadPath}'"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ${action} = "check-upload" ]; then
|
||||
|
||||
# 2nd PARAMETER is type of upload (optional)
|
||||
type=$2
|
||||
echo "type='${type}'"
|
||||
|
||||
# check if there to less or to many files in upload directory
|
||||
countFiles=$(ls ${defaultUploadPath} | wc -l 2>/dev/null)
|
||||
if [ ${countFiles} -lt 1 ]; then
|
||||
sudo rm ${defaultUploadPath}/* 2>/dev/null
|
||||
echo "error='not-found'"
|
||||
exit 1
|
||||
fi
|
||||
if [ ${countFiles} -gt 1 ]; then
|
||||
sudo rm ${defaultUploadPath}/* 2>/dev/null
|
||||
echo "error='multiple'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# get the file uploaded (full path)
|
||||
filename=$(sudo ls ${defaultUploadPath}/*.*)
|
||||
echo "# filename(${filename})"
|
||||
|
||||
# check of size >0
|
||||
byteSize=$(ls -l ${filename} | awk '{print $5}')
|
||||
echo "# byteSize(${byteSize})"
|
||||
if [ "${byteSize}" == "" ] || [ "${byteSize}" == "0" ]; then
|
||||
sudo rm ${defaultUploadPath}/* 2>/dev/null
|
||||
echo "error='invalid'"
|
||||
echo "errorDetail='invalid byte size: ${byteSize}'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# SCB check if file looks valid
|
||||
if [ "${type}" == "scb" ]; then
|
||||
|
||||
# general filename check
|
||||
typeCount=$(sudo ls ${defaultUploadPath}/*.backup 2>/dev/null | grep -c '.backup')
|
||||
if [ "${typeCount}" != "1" ]; then
|
||||
sudo rm ${defaultUploadPath}/* 2>/dev/null
|
||||
echo "error='invalid'"
|
||||
echo "errorDetail='not *.backup'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# LND-RESCUE check if file looks valid
|
||||
if [ "${type}" == "lnd-rescue" ]; then
|
||||
|
||||
# general filename check
|
||||
typeCount=$(sudo ls ${defaultUploadPath}/lnd-rescue-*.tar.gz 2>/dev/null | grep -c 'lnd-rescue')
|
||||
if [ "${typeCount}" != "1" ]; then
|
||||
sudo rm ${defaultUploadPath}/* 2>/dev/null
|
||||
echo "error='invalid'"
|
||||
echo "errorDetail='not lnd-rescue-*.tar.gz'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# checksum test
|
||||
md5checksum=$(md5sum ${filename} | head -n1 | cut -d " " -f1)
|
||||
echo "# filename(${md5checksum})"
|
||||
isCorrect=$(echo ${filename} | grep -c ${md5checksum})
|
||||
if [ "${isCorrect}" != "1" ]; then
|
||||
sudo rm ${defaultUploadPath}/* 2>/dev/null
|
||||
echo "error='invalid'"
|
||||
echo "errorDetail='incorrect checksum'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# ok looks good - return filename
|
||||
echo "filename=${filename}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "error='unkown parameter'"
|
||||
exit 1
|
Reference in New Issue
Block a user