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

2

Puedo ejecutar el respetado script de perl exiftool desde la línea de comandos en la Terminal y lograr el resultado deseado, pero cuando lo incorporo a Automator como Servicio obtengo un mensaje de error genérico y El script perl no se ejecuta. Cuando busco en system.log, encuentro: "No se pudo completar la operación. (OSStatus error -67062.)" Es decir, el objeto de código no está firmado.

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

Intenté agregar la secuencia de comandos o mi flujo de trabajo de Automator a Preferencias del sistema > Seguridad y amp; Privacidad > Privacidad > Accesibilidad pero el panel tampoco aceptará.

¿Hay alguna manera de decirle a Automator que acepte esta secuencia de comandos sin firmar o un comando o interruptor que pueda poner en mi secuencia de comandos bash para que sea aceptada?

Aquí está mi script de shell actual:

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

Gracias por cualquier ayuda.

    
pregunta Bosque Bill 19.11.2015 - 01:10

2 respuestas

1

Bien, resulta que había dos cosas que estaba haciendo mal y ninguna de las dos tenía que ver con que exiftool no estuviera firmado. Algo está causando que mi system.log informe 'El objeto Code no está firmado' con cierta frecuencia, y después de un examen más profundo, empecé a sospechar que no era mi script de Automator porque se generaron incluso cuando no estaba intentando ejecutar Automator .

Error 1: en mi bucle DO pegué entre comillas, que estaba generando el error de script de shell. Al reemplazarlos con "comillas estándar, el error del script de shell desapareció.

Error 2: había establecido la entrada Pasar como stdin, debería haber sido como argumentos

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

exiftool -overwrite_original -AllDates-=1 "$@"
    
respondido por el Bosque Bill 20.11.2015 - 00:20
1

El exiftool se instala en /usr/bin . Bajo SIP esto no está permitido. Asumo que el desarrollador cambiará esto en algún momento.

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

EDITAR Creo que lo último ha cambiado para instalarlo en /usr/local/bin . Nunca me he molestado en instalarlo, solo ejecuto desde un directorio local.     

respondido por el Milliways 19.11.2015 - 05:51

Lea otras preguntas en las etiquetas