Editar archivos de Plist automáticamente con Automator

0

Así que me gustaría editar una propiedad de archivo plist usando automator. Necesito cambiar el valor de una clave para que se establezca en 1 minuto antes de que se inicie la aplicación automator. Soy bastante nuevo en todo esto y necesito ayuda ...

Para un SULastCheckTime dicho, necesitaría que el valor se establezca en Jun 1, 2017, 8:52:56 PM si la aplicación automator se lanzara a las 8:53 el 1 de junio de 2017 ...

Gracias

    
pregunta BenjiMan 01.06.2017 - 14:54

1 respuesta

0

Debe agregar una acción de script de shell a su script de automator y realizar la configuración real en el script de shell. No creo que sea posible obtener la hora de inicio del script de automator, por lo que tendrá que conformarse con una marca de tiempo relativa al momento en que se ejecuta el script de shell. Si realmente necesita la hora de inicio, tendrá que agregar una acción para grabarla usted mismo como el primer paso en el script del automatizador.

En el shell, el cálculo de la hora se realiza con la fecha.

date -v 1M

te da el tiempo hace un minuto. Si realmente lo necesita formateado de la manera específica que dio anteriormente, necesita formatearlo usted mismo, como tal

date -v -1M '+%b %d, %Y, %H:%M:%S %p'

Aquí,% b,% d etc. son marcadores de posición para los diversos componentes de marca de tiempo; consulte la página de manual para strftime .

A continuación, necesita saber cómo cambiar un archivo plist. Puedes usar plutil para eso, así

plutil -replace SULastCheckTime -string newvalue foo.plist

Poniéndolo todo junto, el script de shell podría leer

time='date -v -1M '+%b %d, %Y, %H:%M:%S %p''
plutil -replace SULastCheckTime -string "$time" foo.plist

Aquí, los backticks toman la salida de fecha y la ponen en un tiempo variable; plutil luego lo pone en un archivo.

Si va a utilizar scripts de shell de todos modos, puede considerar la eliminación total de automator a favor de los scripts de shell.

    
respondido por el Martin v. Löwis 01.06.2017 - 20:57

Lea otras preguntas en las etiquetas