Un AppleScript può essere salvato (registrato, ma qui dirò salvataggio per evitare ambiguità) su disco in vari modi e tutti sono utili, ma non sempre e non per ciascuno. Ecco le differenze.
Un AppleScript si può salvare come script. L’icona mostra un foglio con un angolo ripiegato e, su esso, una pergamena semiarrotolata alle due estremità; il file ha suffisso .scpt
; uno script può essere eseguito da dentro Script Editor, con il comando Esegui (Comando-R), oppure modificato.
Altrimenti si può salvare come applicazione. L’icona mostra la pergamena di prima, che stavolta poggia su una base quadrata. Il file ha suffisso .app
; può essere eseguito da Finder con un doppio clic e può essere modificato, o eseguito, da dentro Script Editor.
Altre due possibilità di salvataggio sono bundle dell’applicazione e bundle dello script. Servono per quando creiamo strutture più complicate di uno script singolo, per esempio applicazioni che contengono più script. Un bundle è una struttura equivalente a quella che vediamo quando facciamo Control-clic sopra l’icona di un programma e selezioniamo Mostra Contenuto Pacchetto. Se siamo già a uno stadio di programmazione AppleScript evoluta li conosciamo benissimo, altrimenti non c’è (per ora) ragione di considerarli. Facciamo finta che non esistano.
L’ultima possibilità di salvataggio è come testo. L’icona è come quella dello script, ma sotto la pergamena c’è scritto TEXT; Il suffisso del file è .applescript
; un testo AppleScript si modifica dentro qualunque editor di testo (più Script Editor) e si può eseguire dentro Script Editor stesso. Sostanzialmente l’unica ragione per salvare come testo è la necessità eventuale di modificare il file in un editor di testo (come TextWrangler) invece che in Script Editor.
Dopo tutta questa teoria, un po’ di pratica. Accendiamo Script Editor e scriviamoci dentro
tell application “Finder” to display dialog “Vuoi fare un logout?"
tell application “System Events” to log out
(tradotto: di’ all’applicazione Finder di mostrare la finestra di dialogo)
(tradotto: di’ all’applicazione Sistem Events di fare il logout)
(occhio al comando AppleScript: deve essere log out, con lo spazio)
Salviamo il file come applicazione e facciamolo partire con un doppio clic. Appare la finestra di dialogo con la richiesta di logout. Se clicchiamo Cancel (annulla), non succede niente; se clicchiamo Ok, il Mac fa davvero il logout! Dunque, attenzione e cervello acceso.
L’applicazione System Events è interessante, perché non ha un’icona nella cartella Applicazioni. È un’applicazione virtuale, che serve ad AppleScript per trasmettere comandi non a uno specifico programma, come per esempio il Finder, ma all’intero sistema. Al posto del logout si sarebbe potuto mettere, per dire, Stop (sleep) o Riavvia (restart).
Questo minitutorial è ispirato a quest’altro, pubblicato su The Unofficial Apple Weblog. È il terzo della serie: per trovare i primi due, basta tornare indietro di sette giorni in sette giorni dentro Ping.