2 votos

¿Cómo puedo ejecutar un script sin signo en Automator?

Puedo ejecutar el respetado perl script exiftool desde la línea de comandos en Terminal y consigo el resultado deseado, pero cuando lo incorporo en Automator como un Servicio me aparece un mensaje de error genérico y el perl script no se ejecuta. Cuando miro en el system.log encuentro: "La operación no se ha podido completar. (OSStatus error -67062.)" es decir, el objeto Code no está firmado.

Correcto, exiftool no está firmado, y no hay nada que pueda hacer al respecto. Tuve que evitar Gatekeeper para instalarlo en Yosemite (10.10.5). Pero el script es bien conocido en los círculos fotográficos y ha sido utilizado por muchos para editar la información EXIF de los archivos de imagen.

He intentado añadir el script o mi flujo de trabajo de Automator para Preferencias del Sistema > Seguridad y privacidad > Privacidad > Accesibilidad pero el panel no acepta ninguna de las dos.

¿Hay alguna forma de decirle a Automator que acepte este script sin firmar o un comando o switch que pueda poner en mi bash script para que lo acepte?

Aquí está mi actual shell script:

for f in “$@”
do
exiftool -overwrite_original -AllDates-=1 "$f"
done

Gracias por cualquier ayuda.

1voto

Milliways Puntos 1548

En exiftool se instala en /usr/bin . En SIP esto no está permitido. Supongo que el promotor lo cambiará en algún momento.

Si instala en /usr/local/bin debería funcionar, y no tendrás que anular nada.

EDITAR Creo que la última se ha cambiado para instalar en /usr/local/bin Nunca me he molestado en instalarlo, sólo lo ejecuto desde un directorio local.

1voto

Chris Dodd Puntos 39013

Vale, resulta que había dos cosas que estaba haciendo mal y ninguna de ellas tenía que ver con que exiftool no estuviera firmado. Algo está causando que mi system.log reporte 'Code object is not signed' con cierta frecuencia, y después de un examen más detallado, empecé a sospechar que no era mi Automator script porque se generaban incluso cuando no estaba intentando ejecutar Automator.

Error 1: en mi bucle DO he pegado comillas rizadas, eso estaba generando el error shell script. Reemplazándolas por comillas " estándar, el error shell script desapareció.

Error 2: Había puesto Pass input como stdin, debería haber sido como argumentos

Bonus: Phil, el autor de exiftool, que encontró estas respuestas que me habían derrotado, sugirió una sola línea que es más eficiente que mi bucle DO y funciona muy bien:

exiftool -overwrite_original -AllDates-=1 "$@"

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