1 votos

Necesito ayuda para crear un servicio de Automator que realice tareas similares a las de una desinstalación residual

He estado teniendo un problema con un programa que uso mucho todos los días, en el que actúa como si se estuviera recuperando de un accidente, incluso cuando se cerró correctamente y se guardaron todos los archivos. La aplicación es FontLab Studio, no es que deba importar. Lo que ocurre es que carga todos los archivos en los que he trabajado recientemente, que pueden ser varias docenas, e incluso si hago clic para salir de todos ellos, ocurre varias veces más a lo largo del día. O bien, algo hace que se cuelgue mientras salgo de estos archivos, de modo que tengo que volver a arrancar y todo vuelve a empezar.

Lo que he estado haciendo para evitar esto, es ejecutar AppCleaner, el desinstalador gratuito, y eliminar todo excepto la propia aplicación y la información de la licencia. Esto funciona muy bien, pero dada la frecuencia con la que esto se hace necesario, me gustaría poder crear algo a lo que pudiera acceder realmente rápido, como un Applescript que pudiera poner en mi dock. O un servicio de Automator ubicado en los elementos del menú contextual.

No conozco ningún Applescript, pero he intentado hacer un flujo de trabajo en Automator. El primer paso, "Obtener los elementos seleccionados del Finder". Uno tiene una ubicación estática, el segundo puede cambiar, no estoy seguro.

~/Library/Saved Application State/com.fontlab.studio5.savedState

/var/db/BootCaches/34D6C504-2F5B-416F-9C91-0C9D019BF446/app.com.fontlab.studio5.playlist

El segundo paso en el flujo de trabajo es pasar a la basura, y ahí es donde falla. Sospecho que es porque se necesita una contraseña. Si es posible, sería estupendo que pudiera introducirla una vez y que se acordara, si no, cómo voy a necesitar que me pida que introduzca mi clave de acceso. No sé cuál es la mejor manera de hacer todo esto.

Screenshot

Se me acaba de ocurrir otra idea, aunque quizá no funcione ya que requeriría que FontLab estuviera abierto en ese momento, sería lograr esto con un script de Python, ya que FontLab está parcialmente construido en Python y puede instalar de terceros. Estoy abierto a cualquier ayuda que alguien pueda ofrecer.

Gracias de antemano.

0voto

user3439894 Puntos 5883

No tengo FontLab Studio instalado, sin embargo, con el fin de proporcionar una solución a su situación, bajo OS X El Capitan 10.11.5, hice lo siguiente:

  • En una terminal de /private/var/db/BootCaches , utilizando sudo , mkdir y touch He creado un directorio llamado 34D6C504-2F5B-416F-9C91-0C9D019BF446 y en ese directorio un archivo llamado app.com.fontlab.studio5.playlist .

  • En el Finder, en la carpeta Library > Saved Application State de mi carpeta de inicio, he duplicado una carpeta y he cambiado el nombre de la copia a "com.fontlab.studio5.savedState"

Al hacer esto, se replicaron las ubicaciones de destino y los archivos con los privilegios adecuados para luego probar la siguiente aplicación AppleScript.

En el editor script he utilizado lo siguiente código para crear la aplicación Reset FontLab Studio.app y la guardé en la carpeta de aplicaciones del disco duro del Macintosh y luego la arrastré al Dock para tenerla a mano.


try
    do shell script "rm -r \"$HOME/Library/Saved Application State/com.fontlab.studio5.savedState\" /private/var/db/BootCaches/*/app.com.fontlab.studio5.playlist" with administrator privileges
end try

Cuando hago clic en el azulejo del muelle para restablecer FontLab Studio, aparece el cuadro de diálogo de la contraseña, como se muestra a continuación, para que escriba mi contraseña. Introduje mi contraseña y pulsé enter. Eso es todo, la aplicación hizo lo que estaba programado para hacer.

Password Dialog Box


Notas:

  • Como este código está probado yo sugeriría copiarlo y pegarlo tal cual en scriptEditor y luego guardarlo como una aplicación con el nombre que desees.

  • $HOME se utiliza porque ~ puede/puede dar error en AppleScript y o Automator, dependiendo de su uso específico. Normalmente ~ se amplía al valor de la variable de entorno de HOME y por ello suelo utilizar $HOME en ~ para evitar los errores que a veces puede/va a generar.

  • La sustitución de * para 34D6C504-2F5B-416F-9C91-0C9D019BF446 es intensional, para dar cabida al posible cambio de nombre.

  • El try se utiliza para evitar un error si se ejecuta de nuevo la aplicación Reset FontLab Studio antes de que se vuelvan a crear los archivos de destino y, si uno o el otro no existe, sigue borrando el otro.

  • /var es un enlace simbólico a /private/var Sin embargo, prefiero utilizar la ruta absoluta en lugar del enlace simbólico en casos como éste.

  • El uso de la rm es intrínsecamente peligroso, especialmente cuando se utiliza con privilegios elevados y o comodines, así que para ello asegúrese de que no hay errores tipográficos en su línea de comandos y que los objetivos son los previstos. Por eso he probado mi código antes de publicarlo. También puede prologar el rm comando con echo Por ejemplo echo rm ... y luego revisar la salida en el script panel de Eventos/Resultados del Editor y luego eliminar echo antes de guardar el script.


La imagen de abajo es para mostrar el resaltado sintáctico y para ver la línea de comandos completa del do shell script comando

Script Editor window


Si eres el único usuario del ordenador y te gusta no tener que teclear tu contraseña cuando se ejecuta la aplicación Reset FontLab Studio, entonces modifica el do shell script utilizando la siguiente sintaxis:

do shell script "command" user name "me" password "mypassword" with administrator privileges

Ejemplo:

do shell script "rm -r \"$HOME/Library/Saved Application State/com.fontlab.studio5.savedState\" /private/var/db/BootCaches/*/app.com.fontlab.studio5.playlist" user name "me" password "mypassword" with administrator privileges

Tenga en cuenta que cuando el script de código se guarda el valor de user name y password se guardan en texto legible dentro del archivo binario "main.script" del paquete de aplicaciones. Por lo tanto, utilice este método bajo su propia responsabilidad, ya que se considera un riesgo de seguridad almacenar los nombres de usuario y las contraseñas de forma no cifrada.

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