File: //bigscoots/wpo/backups/backup_link.sh
#!/bin/bash
source /bigscoots/includes/common.sh # Assumed source for JSON functions
# Check parameters
BACKUP=$1
LOCATION=$2
JOBLOGID=$3
WWWPATH="/var/www/html"
HOOK_URL="https://n8n.bigscoots.dev/webhook/hooks/wpo/process-backup-download-url"
SCOOTS_HASH="1a18fefe16e4ab6ae1967a2ad980f396" # Add the required hash here
if [ -z "$BACKUP" ]; then
init_json_response
add_json_error "Backup filename is required"
set_json_success false
print_json_response
exit 1
fi
# Generate random path
RANDO1=$(tr -dc 'a-z0-9' < /dev/urandom | fold -w 16 | head -n 1)
RANDO2=$(tr -dc 'a-z0-9' < /dev/urandom | fold -w 16 | head -n 1)
# Determine link based on location
if [[ "$LOCATION" == "local" ]]; then
mkdir -p /usr/local/nginx/html/"$RANDO1"/"$RANDO2"/
ln -s "${PWD}/$BACKUP" /usr/local/nginx/html/"$RANDO1"/"$RANDO2"/"$BACKUP"
screen -dmS "$BACKUP" bash -c "sleep 172800 ; rm -rf /usr/local/nginx/html/$RANDO1"
link="https://$HOSTNAME/$RANDO1/$RANDO2/$BACKUP"
else
mkdir -p "$WWWPATH/$RANDO1/$RANDO2/"
mv "$BACKUP" "$WWWPATH/$RANDO1/$RANDO2/"
screen -dmS "$BACKUP" bash -c "sleep 172800 ; rm -rf $WWWPATH/$RANDO1"
link="https://$HOSTNAME/$RANDO1/$RANDO2/$BACKUP"
fi
# Prepare JSON response for both console and hook
init_json_response
set_json_result '{"jobId": "'"$JOBLOGID"'", "downloadLink": "'"$link"'"}'
set_json_success true
print_json_response # Console JSON response
# Send the hook notification with additional headers
curl -s -X POST "$HOOK_URL" \
-H "Content-Type: application/json" \
-H "X-SCOOTS-HASH: $SCOOTS_HASH" \
-d '{
"jobId": "'"$JOBLOGID"'",
"downloadLink": "'"$link"'"
}' > /dev/null