¿Necesita ayuda con un AppleScript pequeño?

1

Estoy en Yosemite 10.10.4, Mac Mini. Tengo un pequeño script Bash shell para iniciar Quake3 Arena en Wine. Funciona bien.

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

Línea 2: cd a la carpeta en mi escritorio que contiene la ISO, y también extrae archivos de la ISO. Sé que es un desastre, pero es la única forma en que puedo hacerlo funcionar.

Línea 3: monta la ISO

Línea 4: cd a una carpeta dentro de la primera, llamada Quake3

Línea 5: ejecuta "wine quake3.exe" que se encuentra en ese directorio. (Desktop / Quake3ISO / Quake3)

Entonces, intentar ./quake3.sh monta la iso y ejecuta el programa alegremente.

Pero ... Intento hacer lo mismo en AppleScript, pero no encuentro el archivo de configuración para quake3. Carga la imagen y cambia los directorios, ejecuta Wine y comienza el temblor, pero ahora no puede encontrar el directorio de configuración, y posiblemente algunos otros archivos. El directorio de configuración también se encuentra debajo de esa carpeta (Desktop / Quake3ISO / Quake3 / baseq3)

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

Olvidé agregar. Mi 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

Después de un poco más de experimentación descubro lo siguiente. Como es habitual con QuakeIII, el CD debe estar en la unidad. Así que montarlo parece arreglar eso. A continuación, hice una instalación en el directorio ~ / Desktop / Quake3ISO, pero hace unos años también hice una instalación de vino, que no se ejecutaría. Pero justo ahora copié todos los archivos en la carpeta ~ / Desktop / Quake3ISO / Quake3 / baseq3 a la carpeta de instalación de vino en la carpeta ~ / .wine / drive_c / Program \ Files / Quake \ III \ Arena / baseq3, y ahora puedo ejecuta Quake directamente desde esa carpeta de vino.

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

y funciona bien.

También puedo hacer lo mismo en la carpeta ~ / Desktop / Quake3ISO / Quake3

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

... y funciona bien.

Entonces, esto me dice que necesito que AppleScript entienda que el comando a ejecutar debe ejecutarse en el directorio al que se cambió. ¿Así que cuando el programa está buscando sus archivos de configuración, usa ese directorio como la base, o el directorio raíz y no el directorio de la base de vinos? Creo?

    
pregunta Harry McGovern 21.07.2015 - 11:58

1 respuesta

1

Cada comando do shell script inicia un nuevo shell, por lo que cd no tiene ningún impacto en el siguiente comando. Así que sería mejor que corras

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
    
respondido por el nohillside 21.07.2015 - 14:06

Lea otras preguntas en las etiquetas