Hai bisogno di aiuto con il piccolo AppleScript

1

Sono su Yosemite 10.10.4, Mac Mini. Ho un piccolo script shell Bash per avviare Quake3 Arena in Wine. Funziona bene.

#¡/bin/bash
cd Desktop/Quake3ISO
hdiutil mount "Quake 3 Arena.iso"
cd Quake3
wine quake3.exe

Linea 2: cd nella cartella sul desktop che contiene gli iso e anche i file estratti dagli iso. So che è un disastro, ma è l'unico modo per farlo funzionare.

Linea 3: monta gli iso

Linea 4: cd in una cartella all'interno della prima, chiamata Quake3

Riga 5: avvia "wine quake3.exe" che risiede in quella directory. (Desktop / Quake3ISO / Quake3)

Quindi, provare ./quake3.sh monta gli iso, ed esegue il programma felicemente.

Ma ... Sto cercando di fare lo stesso in AppleScript, ma non riesco a trovare il file di configurazione per quake3. Carica l'immagine e modifica le directory, avvia wine e inizia il terremoto, ma ora non riesce a trovare la directory di configurazione e probabilmente qualche altro file. La directory di configurazione è anche sotto quella (Desktop / Quake3ISO / Quake3 / baseq3) cartella

Q3 1.11 win-x86 Nov 24 1999
----- FS_Startup -----
Current search path:
Z:\Users\robert/baseq3

----------------------

Running in restricted demo mode.

----- FS_Startup -----
Current search path:
Z:\Users\robert/demoq3

----------------------
----- CL_Shutdown -----
-----------------------
Couldn't load default.cfg

Ho dimenticato di aggiungere. My Applescript

tell application "Terminal"
    activate
    do script "cd ~/Desktop/Quake3ISO"
    do script "hdiutil mount ~/Desktop/Quake3ISO/Quake\ 3\ Arena.iso"
    delay 5
    do script "cd ~/Desktop/Quake3ISO/quake3"
    do script "wine ~/Desktop/Quake3ISO/quake3/quake3.exe"
end tell

Dopo ulteriori esperimenti scopro quanto segue. Come al solito con QuakeIII, il CD deve essere nel drive. Quindi montarlo sembra aggiustarlo. Successivamente, ho fatto un'installazione nella directory ~ / Desktop / Quake3ISO, ma alcuni anni fa avevo anche fatto un'installazione di vino - che non funzionava. Ma proprio ora ho copiato tutti i file nella cartella ~ / Desktop / Quake3ISO / Quake3 / baseq3 nella cartella di installazione del vino in ~ / .wine / drive_c / Program \ Files / Quake \ III \ Arena / baseq3, e ora posso eseguire Quake direttamente da quella cartella del vino.

   ie
    cd "/Users/robert/.wine/drive_c/Program Files/Quake III Arena"
    wine quake3.exe

e funziona bene.

Posso anche essere uguale nella cartella ~ / Desktop / Quake3ISO / Quake3

ie
cd ~/Desktop/Quake3ISO/Quake3
wine quake3.exe

... e funziona bene.

Quindi questo mi dice che ho bisogno che AppleScript comprenda che il comando da eseguire dovrebbe essere eseguito nella directory in cui è stato modificato. In modo che quando il programma cerca i suoi file di configurazione, utilizza quella directory come base, o directory principale e non come directory di base del vino? Penso?

    
posta Harry McGovern 21.07.2015 - 11:58
fonte

1 risposta

1

Ogni comando do shell script avvia una nuova shell, quindi cd non ha alcun impatto sul seguente comando. Quindi ti conviene farlo con

tell application "Terminal"
    activate
    do shell script "cd ~/Desktop/Quake3ISO && hdiutil mount ~/Desktop/Quake3ISO/Quake\ 3\ Arena.iso"
    delay 5
    do shell script "cd ~/Desktop/Quake3ISO/quake3 && wine ~/Desktop/Quake3ISO/quake3/quake3.exe"
end tell
    
risposta data 21.07.2015 - 14:06
fonte

Leggi altre domande sui tag