0 votos

Establecer la carpeta de trabajo de `.app` creada por Apple script

Tengo un simple archivo Shell .sh que copia los archivos del PWD a una carpeta de destino.
Esto es básicamente el instalador de un programa hecho a mano.
Quiero crear una APP a partir de ella.

La idea es tener la siguiente estructura de los archivos en el usuario:

- MyApp
    - SourceFiles/
    - MyInstaller.app

Algo así como:

#!/bin/sh

# Copying

cp -r './SourceFiles/.' '/DestFolder/SourceFiles/'

exit 0

He creado un Apple script ( MyInstaller.scpt ) que parece:

tell me to activate

display dialog "Run My Installer?" buttons {"Run", "Cancel"} default button 1

if the button returned of the result is "Run" then
    do shell script "cp -r './SourceFiles/.' '/DestFolder/SourceFiles/' & exit 0;" with administrator privileges

    display dialog "Finished Successfully!" buttons {"OK"} default button 1

end if

Lo compilo con osacompile -o MyInstaller.app MyInstaller.scpt .

Entonces trato de ejecutar MyInstaller.app no funciona.
Aunque si ejecuto el sh Shell script de la misma ubicación funciona.

Tengo la sensación de que está relacionado con el PWD de la APP cuando se ejecuta.
Así que hice el siguiente truco, compilé un .APP del siguiente script:

do shell script "pwd > ~/Temp.txt & exit 0;"

Entonces vi en Temp.txt que el PWD es / (A saber, root).
En efecto, si copio SourceFiles/ al Root y ejecutar la APP se copian los archivos correctamente.

¿Hay alguna manera de hacer que la APP del AppleScript se ejecute en relación con la ubicación del compilado APP ?

3voto

user3439894 Puntos 5883

Una forma de manejar esto es establecer un variable Por ejemplo myPath Y a partir de ahí, construir.

set myPath to POSIX path of (path to me as text)

El myPath variable se devolverá en forma de:

/path/to/AppName.app/

A continuación, puede concatenar myPath y la adición segmentos del camino y nombre de archivo según sea necesario.

Tenga en cuenta que cuando se utiliza esto en un do shell script comando Utilizar quoted form of para permitir espacios en el ruta de acceso nombre de archivo .


Echa un vistazo a la Guía del lenguaje AppleScript y más concretamente: ruta de acceso a (aplicación)

ruta de acceso a (aplicación)

Devuelve la ubicación de la aplicación especificada.

...

  yo

    El propio script. Para script esto es lo mismo que la aplicación actual, pero para script documentos, es la ubicación del documento.

0 votos

Pero no conozco el camino de la APP. Entonces, ¿qué poner en path to me as text ?

0 votos

@Royi, ¡utiliza exactamente lo que he escrito!

0 votos

Vaya. Bien, lo intentaré.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X