Étant donné qu'on ne peut pas savoir par applescript si Transmission est en pause ou non, si on veut relancer automatiquement les transferts quand le vpn remarche il faut quitter Transmission.
voilà le résultat de mes recherches, j'ai compilé ce que j'ai trouvé sur ce post et sur d'autres sites.
Lancer Applescript Editor : Applications->Utilities->AppleScript Editor et copier/coller ce script :
on idle
tell application "System Events"
tell current location of network preferences
set vpnConnection to the service "monVPN"
-- Check if Transmission is running
tell application "System Events"
set transmissionIsRunning to (count of (every process whose name is "Transmission")) > 0
end tell
-- Check if VPN is down
if current configuration of vpnConnection is not connected then
if (transmissionIsRunning = true) then
tell application "Transmission" to quit
end if
connect vpnConnection
-- Check if VPN is up
else if current configuration of vpnConnection is connected then
if (transmissionIsRunning = false) then
tell application "Transmission" to activate
end if
end if
end tell
return 10
end tell
end idle
Remplacer "monVPN" par votre nom de VPN.
Dans File->Save as choisir "Application" comme format et "Stay Open" comme option.
Il suffit de lancer ce script pour que le VPN démarre automatiquement et Transmission démarrera 10 secondes après que le VPN se sera connecté.
Si le VPN se déconnecte, Transmission se ferme et le script essaie de reconnecter le VPN toutes les 10 secondes, quand c'est à nouveau connecté, Transmission redémarre.
Pour que le script n'apparaisse pas dans le Dock, il faut ajouter ceci à la fin du fichier info.plist dans le package de l'app
[KEY]NSUIElement[/KEY]
[STRING]1[/STRING]
Du coup il faut un moyen de quitter le script facilement, donc un nouveau script qui celui-ci ne s'execute qu'une fois:
tell application "System Events"
if ((count of (every process whose name is "monScript")) > 0) then
tell application "YourScriptName" to quit
end if
end tell
Remplacer "monScript" par le nom du script précedemment créé.
Dans File->Save as choisir "Application" sans options.
Cela va seulement quitter le premier script, donc si on veut aussi quitter Transmission et déconnecter le VPN :
tell application "System Events"
if ((count of (every process whose name is "monScript")) > 0) then
tell application "monScript" to quit
end if
if ((count of (every process whose name is "Transmission")) > 0) then
tell application "Transmission" to quit
end if
tell current location of network preferences
set vpnConnection to the service "monVPN"
if current configuration of vpnConnection is connected then
disconnect vpnConnection
end if
end tell
end tell
Remplacer "monScript" par le nom du premier script et "monVPN" par le nom du VPN.
Dans File->Save as choisir "Application" sans options.
On peut aussi mettre les scripts dans /Users/monDossierUtilisateur/Library/Scripts, pour qu'ils soient accessible dans la barre de statut (à côté de l'horloge) dans le menu applescript
J'aurais préféré faire une simple pause des transferts, mais j'ai pas trouvé comment faire pour que ce soit pratique, en plus même en pause, Transmission continue de discuter avec les trackers, donc quitter complètement est le seul moyen de n'avoir plus rien qui passe tant que le VPN n'est pas connecté