Ouvrir le menu principal

MacGeneration

Recherche

OS X Mountain Lion : nouveautés AppleScript et Shell

Nicolas Furno

mercredi 01 août 2012 à 18:10 • 26

macOS

Éditeur AppleScript



L'Éditeur AppleScript est l'utilitaire fourni par Apple pour créer et modifier des scripts écrits en AppleScript, langage très simple. Dans OS X Mountain Lion, l'application reste globalement la même, mais on note un changement bienvenu : la prise en charge de la sauvegarde automatique et des versions.



L'application avait été privée jusque-là de ces deux nouveautés pourtant liées à OS X 10.7. La raison est technique : l'Éditeur AppleScript avait l'habitude de compiler le script au moment de la sauvegarde et ainsi de bloquer celle-ci en cas d'erreur dans le code. Ce modèle pose problème dans un environnement où le système sauvegarde automatiquement les fichiers et permet à l'utilisateur de quitter à tout moment une application, sans perdre ses données.


Ce script contient une erreur, il ne peut pas être sauvegardé.


Dans OS X Mountain Lion, l'éditeur sauvegarde automatiquement votre travail, même s'il n'est pas possible de le compiler. Pour y parvenir, Apple utilise une astuce : si vous n'enregistrez pas manuellement un script, l'Éditeur AppleScript sauvegarde à la fois la version compilée pour la dernière fois, et une copie du code au format RTF. La prochaine fois que vous ouvrirez l'éditeur, vous retrouverez le code complet et vous pourrez alors effectuer les modifications nécessaires.


Ce script est faux, mais l'Éditeur AppleScript l'a quand même enregistré et a placé le code impossible à compiler dans un fichier RTF.


Si vous tentez d'utiliser un script qui n'a pas été compilé, un message d'erreur apparaîtra pour vous faire comprendre qu'il y a un problème. Concrètement, Apple remplace le contenu du script original par une simple ligne qui provoque l'affichage de l'erreur.



Seul problème pour ce nouveau dispositif, le partage de script. Si vous envoyez un script qui n'a pas été compilé à un utilisateur d'OS X Lion ou d'une version antérieure, il ne pourra pas l'exploiter facilement. Dans ce cas, vous pouvez utiliser Read My Script, un utilitaire gratuit chargé d'extraire le code non compilé pour l'utiliser ensuite dans l'Éditeur AppleScript.

Autre changement à relever dans l'Éditeur AppleScript livré avec OS X 10.8, l'apparition d'une nouvelle commande "Exporter…" dans le menu "Fichier". Son fonctionnement est strictement la même que la commande "Enregistrer sous…" à une exception près : c'est désormais le seul moyen de bloquer un script en lecture seule.



Nouvelles commandes Shell



Apple a ajouté à son dernier système plusieurs commandes UNIX à utiliser dans le Terminal ou à intégrer à un script.


  • caffeinate : bloque la mise en veille du Mac pendant une période donnée (en secondes), ou tant qu'une autre commande est en cours.


    • Bloquer la mise en veille pendant une heure :

      caffeinate -u -t 3600

    • Bloquer la mise en veille du Mac tant que le processus qui suit n'est pas terminé :

      caffeinate -s any-long-running-command -with arguments


  • tccutil : gère la base de données associée aux données privées. Dans OS X Mountain Lion, l'accès aux contacts ou à la géolocalisation est (dés)activée pour chaque application. Pour le moment, cette commande permet uniquement de réinitialiser la liste des applications autorisées :

    tccutil reset AddressBook

  • fdesetup : outil qui active et contrôle le chiffrement FileVault. La commande permet notamment de forcer l'activation de la fonction sur tous les Mac sur le réseau.

  • pgrep et pkill : deux commandes qui trouvent et arrêtent tous les processus associés à une application et à un utilitaire. pkill -U bob Chrome va interrompre tous les processus qui concernent Chrome pour l'utilisateur Bob, par exemple.

  • sharing : crée ou arrête des points de partage avec l'un des protocoles pris en charge par OS X (AFP, FTP ou SMB).

  • serverinfo : détermine l'état d'un serveur, on peut l'utiliser dans une boucle conditionnelle.



Centre de notifications et script



Vous pouvez utiliser les notifications d'Apple pour afficher un message lié à votre script, ce qui peut être utile pour remonter une erreur ou signaler la fin d'un long processus. Apple n'offre pour l'heure aucun moyen d'afficher des notifications sans passer par une application, mais un développeur a conçu terminal-notifier.

Cette application contient simplement un outil en ligne de commande qui affiche une notification et ajoute une action en cas de clic. On peut l'utiliser avec le Terminal, directement dans un script Ruby, ou même dans un script AppleScript. Dans ce cas, le mieux est d'intégrer l'application terminal-notifier à un script enregistré sous la forme d'un paquet (fichier .scptd) ou d'une autre application.



Dans tous les cas, cette méthode n'est pas idéale : les notifications affichent toujours l'icône du Terminal et il faut appeler non pas l'application, mais un fichier précis à l'intérieur de l'application pour l'activer :

./terminal-notifier.app/Contents/MacOS/terminal-notifier -message Essai -title "Essai de titre"




Les sources de cet utilitaire étant disponibles sur GitHub, rien ne vous empêche toutefois de modifier le projet dans Xcode et de changer l'icône, par exemple. Si vous souhaitez simplement l'utiliser dans vos scripts, vous pouvez télécharger une version prête à l'emploi et signée pour GateKeeper à cette adresse.

AppleScript dans Notes et Rappels



Avec OS X Mountain Lion, Apple n'abandonne pas l'AppleScript dans les applications qui étaient déjà compatibles. Mieux, Notes et Rappels sont compatibles avec le langage de script d'Apple. Le site Mac OS X Automation a publié un dossier complet sur les possibilités offertes par Apple pour Notes. On trouvera quelques exemples, dont un script qui archive les notes du mois dans un dossier spécifique.



La possibilité de scripter Rappels permet d'envisager l'ajout de tâches automatiquement en utilisant une règle mail, ou depuis une page Internet. Dans les deux cas, on peut gérer les comptes et accéder à la majorité des fonctions.


Ce script très simple ajoute une tâche dans la première liste de Rappels avec le nom de la page en cours de Safari comme titre de tâche, l'URL de la page dans les notes et une notification une heure après l'ajout.


Sur le même sujet :

- OS X Mountain Lion : Gatekeeper, sandboxing et AppleScript

Soutenez MacGeneration sur Tipeee

MacGeneration a besoin de vous

Vous pouvez nous aider en vous abonnant ou en nous laissant un pourboire

Soutenez MacGeneration sur Tipeee

Starlink semble avoir du mal à recruter des abonnés en France et promet une installation professionnelle gratuite

17:45

• 24


Promo : transformez votre Mac mini M4 en Macintosh grâce à cette coque à seulement 26 € ! (-27 %)

16:12

• 4


Promo : une imprimante laser Brother compatible AirPrint à 95 € au lieu de 110

14:10

• 27


Apple Store : de nouveaux accessoires pour les Mac, dont une manette exclusive

11:30

• 1


Waymo fait rouler ses robotaxis sur les autoroutes américaines

11:17

• 16


OVHcloud, le bon plan pour vos noms de domaine

11:00

• 0


Pour les retardataires : le magazine des 25 ans de MacG et son mug sont à nouveau en vente !

08:33

• 62


Google Maps affiche l’occupation des Superchargeurs en temps réel

08:32

• 40


Apple n’abandonne pas Apple Intelligence sur les Mac M1... c’était une erreur 🆕

08:14

• 62


macOS 26.2 : Edge Light, un éclairage intégré pour des appels vidéo plus flatteurs

06:30

• 20


Vos AirPods Max ne démarrent plus ? Un passage au congélateur peut leur rafraîchir les idées

06:11

• 28


iOS, iPadOS, macOS, watchOS, tvOS et visionOS 26.2 bêta 2 est de sortie pour les développeurs

12/11/2025 à 23:54

• 4


Écrans 4K et 5K pour Mac : les meilleures offres du Black Friday à ne pas rater !

12/11/2025 à 22:55

• 0


OpenAI lance GPT-5.1, annonçant un chatbot plus amical et chaleureux

12/11/2025 à 21:45

• 39


Valve annonce une console de salon et un nouveau casque VR, en vente début 2026

12/11/2025 à 21:30

• 58


Achats de Noël : les retours de l’Apple Store prolongés jusqu’au 8 janvier 2026

12/11/2025 à 18:52

• 2