Automatiser la synchronisation iSync

Date: 19/03/2009 | Catégories: Systeme | Tags: ,,,,,

Vous avez un Mac et un téléphone portable ? Vous connaissez alors surêment le logiciel iSync qui permet de synchroniser vos contacts et calendriers.

Il manque cependant une fonction importante à ce petit logiciel: la possibilité d'automatiser cette synchronisation. En attendant qu'Apple ajoute cette fonction à iSync (et oui c'est ça le problème avec les logiciels propriétaires, il faut attendre :(), voici un petit hack qui va fonctionellement nous rendre le même service.

Nous allons pour cela utiliser un AppleScript. Il faut éditer un fichier nommé SyncNow.scpt  dans le répertoire ~/Library/Scripts/ et contenant le code suivant:

tell application "Finder"
set iSyncRunning to 1
tell application "iSync" to synchronize
tell application "iSync"
repeat while (syncing is true)
delay 5
end repeat
if iSyncRunning is not true then
quit
end if
end tell
end tell

Ce script va ouvrir iSync, lancer un synchronisation, puis fermer iSync. Si le téléphone n'est pas à porté de Bluetooth, le script boucle jusqu'à ce que la synchronisation soit faite.

Vous pouvez tester le bon fonctionnement de ce script en ouvrant un terminal et en saisissant la commande suivante:

~/Library/Scripts/SyncNow.scpt

Afin d'automatiser le lancement de ce script, nous allons utiliser crontab (venu du monde unix). Elle permet de lancer une commande à une heure précise. Il faut ouvrir un terminal, puis saisir:

crontab -e

Vous allez vous retrouver dans l'éditeur "vi". Pour ajouter la ligne suivante, il faut au préalable cliquer sur la touche i.

0 11 * * 1-5 osascript Library/Scripts/SyncNow.scpt

Pour sortir de l'éditeur vi, il faut appuyer successivement sur les touche ESC ensuite : puis x et enfin ENTREE.

Et voilà, tout les matin à 11h00 (0 11), du lundi au vendredi (1-5), le script sera lancé et la synchronisation effectué !

Partager ce billet





WordPress » Erreur

Il y a eu une erreur critique sur ce site.

En apprendre plus sur le débogage de WordPress.