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

Puedo ejecutar la muy respetada secuencia de comandos de perl exiftool desde la línea de comandos en la Terminal y lograr el resultado deseado, pero cuando la incorporo en Automator como servicio recibo un mensaje de error genérico y la secuencia de comandos de perl no se ejecuta. Cuando miro en system.log, encuentro: "La operación no se pudo completar. (Error de estado de OSS -67062.)", es decir, el objeto Código no está firmado.

Correcto, exiftool no está firmado y no puedo hacer nada al respecto. Tuve que omitir Gatekeeper para instalarlo en Yosemite (10.10.5). Pero el script es bien 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 el script o mi flujo de trabajo de Automator a Preferencias del sistema> Seguridad y privacidad> Privacidad> Accesibilidad, pero el panel tampoco lo acepta.

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

Aquí está mi script de shell actual:

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

Gracias por cualquier ayuda.

Respuestas (2)

Las exiftoolinstalaciones en /usr/bin. Bajo SIP esto no está permitido. Supongo que el desarrollador cambiará esto en algún momento.

Si lo instala, /usr/local/bindebería funcionar, y no tendrá que anular nada.

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

Bien, resulta que había dos cosas que estaba haciendo mal y ninguna de ellas tenía que ver con la falta de firma de exiftool. Algo está causando que mi system.log informe "El objeto de código no está firmado" con cierta frecuencia, y después de un examen más detallado, comencé a sospechar que no era mi secuencia de comandos de Automator porque se generaron incluso cuando no estaba intentando ejecutar Automator .

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

Error 2: configuré la entrada Pass como stdin, debería haber sido como argumentos

Bonificación: 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 "$@"