#!/usr/bin/bash

URL_ALIVE="https://public.databasepro.fr/.secrets/alive.txt"
URL_ENC_PASS="https://public.databasepro.fr/.secrets/linux.txt"
SECRET="For#LinuxM1ntVer@crypt"



RUNTIME="1 minute"
ENDTIME=$(date -ud "$RUNTIME" +%s)

while [[ $(date -u +%s) -le $ENDTIME ]]
do
    echo -n "`date +%H:%M:%S`: waiting for remote encrypyted password file.. "
    ALIVE=$(curl -s ${URL_ALIVE})
    if [ "$ALIVE" == "yes" ]; then
    	echo "OK"
    	break
    fi
    echo "retrying in 10 seconds.."
    sleep 10
done

if [ "$ALIVE" != "yes" ]; then
 	echo "Remote encrypyted password file is not available, giving up"
   	exit -1
fi



# Get encrypted passwords JSON from URL
JSON_ENC_PASS=$(curl -s ${URL_ENC_PASS})

# Decode JSON
ENC_PASS_CIFS=$(jq '.cifs' <<< "${JSON_ENC_PASS}")
ENC_PASS_VERACRYPT=$(jq '.veracrypt' <<< "${JSON_ENC_PASS}")

# Remove first and last double quote from values
AUX="${ENC_PASS_CIFS%\"}"
AUX="${AUX#\"}"
ENC_PASS_CIFS=${AUX}

AUX="${ENC_PASS_VERACRYPT%\"}"
AUX="${AUX#\"}"
ENC_PASS_VERACRYPT=${AUX}

# Uncrypt passwords
PASS_CIFS=$(echo ${ENC_PASS_CIFS} | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt -pass pass:${SECRET})
PASS_VERACRYPT=$(echo ${ENC_PASS_VERACRYPT} | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt -pass pass:${SECRET})

# Mount CIFS
sudo mount -t cifs //192.168.0.9/share /mnt/yavin4 -o vers=2.0,uid=smbuser,gid=smbuser,file_mode=0775,dir_mode=0775,user=vplesnila,password=${PASS_CIFS},mfsymlinks

# Mount Veracrypt volume
veracrypt --text --mount /home/vplesnila/data/veracrypt_01.volume  /mnt/rslsync  --pim 0 --keyfiles "" --protect-hidden no --slot 1 --password ${PASS_VERACRYPT} --verbose

# Start Resilio Sync
systemctl --user start resilio-sync

# Show FS
df -hT


