#!/bin/bash
#
#This script is a modified version of https://connect.resilio.com/hc/en-us/articles/360004845800-Updating-your-Agents-using-Distribution-Job. 
#This script is used for OS X agents launched as root
#This script MUST be started detached, otherwise it'll never finish
log_name="/var/root/Library/Application Support/Resilio Connect Agent/update-$(date '+%Y-%m-%d').log"
touch "$log_name"
exec > "$log_name"
exec 2>&1

osascript -e 'display notification "Your administrator started Resilio Connect Update. \nDo not reboot your computer" with title "Resilio Update"'

echo "Mounting disk image file"
hdiutil unmount "/Volumes/Resilio Connect Agent"/
hdiutil attach Resilio-Connect-Agent.dmg 

echo "Waiting Agent to shut down"
PID=$(cat /var/root/Library/Application\ Support/Resilio\ Connect\ Agent/sync.pid)
kill $PID
while ps -p $PID; do sleep 1;done;

echo "Removing existing Agent installation"
rm -r -f /Applications/Resilio\ Connect\ Agent.app

echo -ne "Copy new Agent to Applications folder"
cp -R /Volumes/Resilio\ Connect\ Agent/Resilio\ Connect\ Agent.app /Applications/
hdiutil unmount "/Volumes/Resilio Connect Agent"/

echo "Remove PID file before starting of agent "
rm -f /var/root/Library/Application\ Support/Resilio\ Connect\ Agent/sync.pid

echo "Start new Agent, delay 10 seconds"
sleep 10
sudo nohup /Applications/Resilio\ Connect\ Agent.app/Contents/MacOS/Resilio\ Connect\ Agent &
osascript -e 'display notification "Resilio Connect Update complete. Restarting the agent..." with title "Resilio Update"'
