Editar automáticamente archivos Plist con Automator

0

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

Para decirlo SULastCheckTime, necesitaría establecer el valor Jun 1, 2017, 8:52:56 PMsi la aplicación del automatizador se iniciara a las 8:53 el 1 de junio de 2017 ...

Gracias

BenjiMan
fuente

Respuestas:

0

Debe agregar una acción de script de shell a su script de automatizador y realizar la configuración real en el script de shell. No creo que sea posible obtener la hora de inicio de la secuencia de comandos del automatizador, por lo que tendrá que conformarse con una marca de tiempo relativa a la hora en que se ejecuta la secuencia de comandos 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 del tiempo 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 da arriba, debe formatearlo usted mismo, así

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; Vea la página del manual para el strftime .

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

plutil -replace SULastCheckTime -string newvalue foo.plist

Poniendo 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 coloca en un archivo.

Si va a utilizar scripts de shell de todos modos, puede considerar abandonar el automatizador por completo a favor de los scripts de shell.

Martin v. Löwis
fuente