¿iCal ya no ejecuta scripts?

12

Tengo algunas tareas automatizadas en forma de AppleScripts que programaría para ejecutar durante la noche a través de un evento iCal. El evento simplemente se configuraría para "ejecutar script" en "0 minutos antes del evento" y seleccionaría los diversos scripts para ejecutar.

Sin embargo, desde que se actualizó a Mountain Lion, "ejecutar script" ahora es solo "abrir archivo" y los scripts no se ejecutan, solo se abren en AppleScript Editor.

Intenté compilar los scripts en las aplicaciones para ver si podía seleccionar los que se abrirían en su lugar, pero no están disponibles para seleccionar desde el evento (están atenuados).

  1. ¿Cómo puedo hacer que Calendar ejecute mis scripts?
  2. Por el contrario, ¿hay una mejor manera de programar scripts para ejecutar?
David
fuente

Respuestas:

10

Escribí una respuesta a una pregunta sobre la programación de trabajos que podría resolver algunos de los problemas por usted. Eso fue principalmente por un tiempo de una sola vez versus en curso.

Si tiene un trabajo en curso, como uno que habría programado a través de iCal, launchdfuncionará bien también.

Pero si desea un reemplazo absoluto de algo similar a lo que hizo con iCal / Calendar, parece que esta gran crítica en el tablero de Discusiones de Apple explica el uso de la 'Alarma de calendario' de Automator . Un usuario incluso dijo que esta nueva forma es aún más fácil de usar. Personalmente, creo que con la potencia adicional de Automator, también agrega nueva potencia.

De ese sitio:

Aquí hay una solución que me funciona:

  1. En Automator, cree una alarma de calendario
  2. Seleccione Utilidades desde el panel de la biblioteca
  3. Seleccione y arrastre Ejecutar AppleScript al área de flujo de trabajo
  4. Copie / pegue el AppleScript en el cuadro Ejecutar AppleScript
  5. Guarde la alarma de calendario recién creada
  6. Abre Calendar.app, crea un nuevo evento
  7. Seleccione el calendario Automator como su calendario de referencia.
  8. Seleccione Abrir archivo para la alerta y seleccione el archivo que creó en Automator. De manera predeterminada, iCal es el archivo que aparece cuando selecciona Abrir archivo.
  9. Cambie eso al nombre de la aplicación Automator que creó.
  10. Seleccione Otro si no se muestra el nombre del archivo.

ingrese la descripción de la imagen aquí

El usuario también adjuntó algunas capturas de pantalla a su publicación, pero he incluido una captura de pantalla de lo que debe seleccionarse en Automator.

jmlumpkin
fuente
1
¡Esto se ve genial! Esta noche se pondrá a prueba con mis tareas, pero parece que funcionará espléndidamente. Una nota interesante sobre los pasos descritos, parece que hay una actualización para ellos (posiblemente nuevo en Mountain Lion, no lo sé). Al guardar el "archivo" en Automator, no había ninguna opción para guardarlo realmente como un archivo en alguna parte. (El empuje de Apple para alejarse del sistema de archivos, sin duda). Simplemente guarda con un nombre y eso es todo. Y tan pronto como se guarda, Calendar se enfoca con un evento creado automáticamente. Solo tenía que ajustar el tiempo y establecer la repetición para el evento.
David
4

Parece que Apple no transfirió la funcionalidad "Ejecutar script" de iCal a Calendar en Mac OS X 10.8, también conocido como Mountain Lion.

Puede programar aplicaciones para que se ejecuten en Mac OS X de varias maneras.

Herramientas de programación incorporadas

El método de programación incorporado preferido es usar launchd (launch daemon). Para usarlo launchd, crea tickets de trabajo de launchd y colócalos en tu ~/Library/LaunchAgents/carpeta.

cronestá disponible en Mac OS X pero ya no se recomienda. Sin embargo, hay muchos horarios que pueden ser representados por crony no por launchd.

La documentación de lanzamiento de Apple es un buen lugar para comenzar.

Herramientas de programación de terceros

Si desea una interfaz gráfica o más funcionalidad, hay aplicaciones de terceros disponibles. Mi empresa desarrolla Power Manager ; También existen otras soluciones.

Graham Miln
fuente
Puede representar programas similares a cron con launchd simplemente agregando suficientes diccionarios StartCalendarInterval .
Lri
1
El lenguaje de programación de cron es increíble y extremadamente poderoso. Lamentablemente, lo que proporciona el mismo poder es difícil de predecir con precisión sin enumerar y probar cada minuto. Esta es una razón por la cual cron ya no se recomienda, requiere sondeo; launchd puede programar tareas sin necesidad de sondear.
Graham Miln
0

La respuesta de jmlumpkin es acertada, pero puedes hacerlo aún más fácil. Como describí en una publicación de blog , no es necesario que copie y pegue el script en el nuevo flujo de trabajo que cree. En su lugar, puede llamar al AppleScript original desde el flujo de trabajo:

on run {input, parameters}

    run script file "Macintosh HD:Some Directory On Disk:a cool script.applescript"

end run
Dov
fuente