Automatizzare i comandi del terminale con AppleScript

1

Ho un dispositivo basato su Arduino ( www.picobrew.com ) e richiede l'aggiornamento del firmware. L'azienda ha scritto una piccola app per farlo per gli utenti di Windows, ma noi utenti di OS X siamo fuori al freddo. Fortunatamente, siamo stati in grado di utilizzare l'app Arduino e alcuni comandi del terminale per evitare di avere la loro app. Alcune persone, tuttavia, hanno un po 'paura di armeggiare in Terminal. Ho trovato questo post , che sembra un buon inizio, ma ho due variabili, il nome del file del firmware e il nome della porta seriale Arduino che non sono abbastanza sicuro di come entrare nello script senza hardcoding. Ecco lo script:

/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C /Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -c arduino -P /dev/tty.usbmodemFD121 -p atmega1284p -U flash:w:$HOME/Desktop/Zymatic_RC_1_1_9.hex

Posso trovare il nome della porta seriale con questo comando:

ls /dev/tty.usb*

Ma come posso popolare il primo script con il risultato di questo?

Inoltre, c'è un modo per richiedere un percorso file?

Chiedo scusa se tutto ciò è super-base. Ho un'esperienza terminale estremamente limitata e zero esperienza con AppleScript. Grazie per l'aiuto.

    
posta TheAleMaster 18.09.2015 - 00:27
fonte

1 risposta

1

Questi esempi realizzano ciò che desideri. Notare la "forma & quoted di portName &" porzione di shellString. Stavo solo indovinando che è dove va, ma puoi capirlo da lì.

-- set the porn name to a variable
set portName to do shell script "ls /dev/tty.usb*"

-- set up the shell command, including the variable you insert
set shellString to "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C /Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -c arduino -P /dev/tty." & quoted form of portnName & " -p atmega1284p -U flash:w:$HOME/Desktop/Zymatic_RC_1_1_9.hex"

-- run the shell command
do shell script shellString

-- this command returns an alias to a folder
set aFolder to choose folder "Please choose the correct folder"
-- this command returns an alias to a file, you can restrict file types
set aFile to choose file "Please choose the correct file"
-- you can convert the folder/file alias to a string to get just the portion you need
    
risposta data 02.10.2015 - 03:12
fonte

Leggi altre domande sui tag