TuttoMela AS/AS S Develop Program – Tutorial 4

Tutorial 4 – Far eseguire comandi al Terminale
Obbiettivi:
- Facilitare l’utilizzo di comandi da Terminale attraverso AppleScript
- Imparare a far eseguire comandi al Terminale da script
Eseguire comandi da Terminale può risultare noioso e scomodo se c’è bisogno di farlo su molteplici files. Per rendere il tutto più comodo ci viene incontro AppleScript.
Far eseguire un comando al Terminale da AS è facile: do shell script “echo prova”. Tutto qua. Ora vediamo come possiamo elaborare questo comando in modo da renderlo più facile da usare.
Per prima cosa dobbiamo fare in modo che lo script elabori i file spostati su esso. Per far questo dobbiamo inserire questo codice:
on open elementiDaElaborare
-- eseguo del codice
end open
elementiDaElaborare sono tutti i files spostati sullo script, ora dobbiamo ripetere un processo su ognuno di essi:
repeat with ogniElemento in elementiDaElaborare
-- eseguo qualcosa
end repeat
Abbiamo detto che dobbiamo ridimensionare l’immagine, quindi possiamo inserire nel ciclo repeat il codice che modifica essa:
set ogniElemento to posix path of ogniElemento
do shell script {"sips -z 480 320 " & ogniElemento}
Salviamo il tutto e proviamo a spostare qualche immagine sulla nostra applicazione. Tutte verranno ridimensionate in 320×480 in poco tempo.
Se ora volessimo invece decidere la dimensione finale degli elementi abbiamo bisogno di impostarla, il tutto tramite una semplice finestra di dialogo da inserire prima del ciclo repeat:
display dialog "Larghezza finale:" default answer "" buttons "Avanti" default button 1
set larghezza to text returned of result
set larghezza to larghezza as number
display dialog "Altezza finale:" default answer "" buttons "Avanti" default button 1
set altezza to text returned of result
set altezza to altezza as number
In queste poche righe abbiamo ottenuto altezza e larghezza finale, adesso le riutilizziamo nel comando da Terminale nel ciclo repeat:
do shell script {"sips -z " & altezza & space & larghezza & space & ogniElemento}
Dovremmo ottenere così uno script utile, leggero e completo. Ecco qua il codice per esteso:
on open elementiDaElaborare
display dialog "Larghezza finale:" default answer "" buttons "Avanti" default button 1
set larghezza to text returned of result
set larghezza to larghezza as number
display dialog "Altezza finale:" default answer "" buttons "Avanti" default button 1
set altezza to text returned of result
set altezza to altezza as number
repeat with ogniElemento in elementiDaElaborare
-- Ottengo il percorso del file
set ogniElemento to POSIX path of ogniElemento
set ogniElemento to quoted form of ogniElemento
do shell script {"sips -z " & altezza & space & larghezza & space & ogniElemento}
end repeat
end open





