2 votes

Comment exécuter un script non signé dans Automator

Je peux exécuter le très respecté perl script exiftool à partir de la ligne de commande dans Terminal et obtiennent le résultat souhaité, mais lorsque je l'incorpore dans Automator en tant que service, j'obtiens un message d'erreur générique et le script perl n'est pas exécuté. Lorsque je regarde dans le system.log, je trouve : "L'opération n'a pas pu être achevée. (OSStatus error -67062.)" c'est-à-dire que l'objet Code n'est pas signé.

Correct, exiftool n'est pas signé, et il n'y a rien que je puisse faire à ce sujet. J'ai dû contourner Gatekeeper pour l'installer dans Yosemite (10.10.5). Mais le script est bien connu dans les milieux de la photographie et a été utilisé par beaucoup pour modifier les informations EXIF dans les fichiers d'image.

J'ai essayé d'ajouter le script ou mon flux de travail Automator pour Préférences système > Sécurité et confidentialité > Confidentialité > Accessibilité mais le jury n'accepte ni l'un ni l'autre.

Existe-t-il un moyen de dire à Automator d'accepter ce script non signé ou une commande ou un switch que je peux mettre dans mon bash script pour qu'il soit accepté ?

Voici mon shell script actuel :

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

Merci pour toute aide.

1voto

evilcandybag Points 101

Le site exiftool s'installe dans /usr/bin . Sous SIP, cela n'est pas autorisé. Je suppose que le développeur va changer cela à un moment donné.

Si vous installez dans /usr/local/bin cela devrait fonctionner, et vous n'aurez pas à modifier quoi que ce soit.

EDIT Je crois que la dernière version a été modifiée pour s'installer en /usr/local/bin Je n'ai jamais pris la peine de l'installer moi-même, je l'exécute simplement à partir d'un répertoire local.

1voto

Chris Dodd Points 39013

OK, il s'avère qu'il y avait deux choses que je faisais mal et aucune d'entre elles n'avait à voir avec le fait que exiftool soit non signé. Quelque chose fait que mon system.log rapporte 'Code object is not signed' avec une certaine fréquence, et après un examen plus approfondi, j'ai commencé à soupçonner que ce n'était pas mon script d'Automator, car ils étaient générés même lorsque je n'essayais pas d'exécuter Automator.

Erreur 1 : dans ma boucle DO, j'ai collé des guillemets curly, ce qui générait l'erreur shell script. En les remplaçant par des " guillemets standard ", l'erreur shell script a disparu.

Erreur 2 : J'avais défini Pass input comme stdin, cela aurait dû être comme arguments

Bonus : Phil, l'auteur d'exiftool, qui a trouvé ces réponses qui m'avaient mis en échec, a suggéré une ligne unique qui est plus efficace que ma boucle DO et elle fonctionne très bien :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X