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.
Las exiftool
instalaciones en /usr/bin
. Bajo SIP esto no está permitido. Supongo que el desarrollador cambiará esto en algún momento.
Si lo instala, /usr/local/bin
debería funcionar, y no tendrá que anular nada.
EDITAR Creo que lo último se ha cambiado para instalarlo. /usr/local/bin
Nunca 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 "$@"