0 votos

¿Puede un flujo de trabajo de Automator generar una aplicación?

Estoy construyendo una especie de "Asistente" que utiliza Automator y algo de Appliescript, y al final me gustaría que generara una "Aplicación Automator" que haga cosas cuando se lance, que estén basadas en las entradas del asistente.

¿Es esto posible? ¿Puede un flujo de trabajo de Automator, generar realmente una aplicación a partir de los resultados? Sé que el software puede crear software, pero ¿es esto posible dentro de las capacidades de Automator?

EDIT: Como se señala en los comentarios debajo del post, osacompile parece que podría llevarme a donde quiero ir, pero ahora tengo un nuevo problema con eso.

Aquí hay una captura de pantalla de mis pasos del automatizador:

Automator routine

Aquí está el código del módulo de error (Send iMessage):

on run {input, parameters}

    set sms_address to item 1 of input
    set email_address to item 2 of input
    set sms_content to item 3 of input
    set email_subject to item 4 of input
    set email_body to item 5 of input

    set savePath to (path to desktop as text) & "test.scpt"

    set code to "osacompile -e 'tell application \"Messages\"' -e ' 
    set imessageservice to 1st service whose service type = iMessage' -e '
    set iMessageBuddy to buddy " & sms_address & " of imessageservice' -e '
    send " & sms_content & " to iMessageBuddy' -e '
    end tell' -o " & quoted form of POSIX path of savePath

    do shell script code

    return input
end run

Tenga en cuenta que las líneas están divididas de esa manera porque fue el único enfoque que pude encontrar en el que no obtuve ningún error sólo por añadir saltos de línea (puedo poner este código todo en una línea y obtener el mismo error)

Este es el error que recibo:

osacompile error message

No he sido capaz de averiguar cuál es el problema aquí, pero parece que no estoy pasando las variables en la forma en que un bash script espera. He probado un montón de otros enfoques y nada ha funcionado mejor, pero este es el que parece más sensato para mí, sabiendo cómo yo normalmente pasar las variables en un script.

EDIT 2: Para simplificar aún más, aquí está el código independiente que estoy depurando actualmente en el Editor de AppleScript y sin saltos de línea para no confundir el tema:

set sms_address to "person@gmail.com"
set sms_content to "sms content"

set savePath to (path to desktop as text) & "test.scpt"

set code to "osacompile -e 'tell application \"Messages\"' -e ' set imessageservice to 1st service whose service type = iMessage' -e 'set iMessageBuddy to buddy " & sms_address & " of imessageservice' -e 'send " & sms_content & " to iMessageBuddy' -e 'end tell' -o " & quoted form of POSIX path of savePath

do shell script code

0voto

Así que por las ediciones de mi post, estaba en el camino correcto. ¡Pero olvidé que el script final necesita tener comillas alrededor del contenido que se pasa! Este es el fragmento de código que finalmente funcionó:

set sms_address to "sms_address"
set sms_body to "sms_body"
set filename to "filename"
set savePath to (path to desktop as text) & filename & ".scpt"

set code to "osacompile -e '
tell application \"Messages\" 
    set imessageservice to 1st service whose service type = iMessage 
    set iMessageBuddy to buddy \"sms_address\" of imessageservice 
    send \"sms_body\" to iMessageBuddy
end tell' -o " & quoted form of POSIX path of savePath

do shell script code

Así que estaba en el camino correcto todo el tiempo, sólo necesitaba escapar de esas comillas dobles.

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