Intégrer des outils de ligne de commande dans un script ou une application automator?


5

J'aimerais savoir s'il est possible de regrouper des outils de ligne de commande compilés dans le cadre d'un script automator ou d'une application.

Disons, par exemple, que je souhaite utiliser un outil de ligne de commande appelé foo et cela repose sur jpeglib et quelques autres libs. Suis-je capable de les mettre dans le même dossier et de diriger en quelque sorte ce nouveau $ PATH vers le foo app?

La raison pour laquelle je souhaite procéder est qu’un client requiert quelque chose pour lequel j’utilise habituellement un script bash. Pour qu'ils fassent la même chose, ils auraient besoin d'installer XCode (pour obtenir le compilateur gcc) et d'installer les outils de ligne de commande (via macports, fink, etc.), ce qui est bien sûr fastidieux.

Réponses:



3

Tous les macs ont plusieurs shell disponibles (GNU bash 3.2.48 est livré avec le dernier Snow Leopard), y compris zsh, sh, bash, csh et ksh. Vous pouvez intégrer en toute sécurité un ou plusieurs scripts shell sans craindre que les autres macs ne disposent pas des outils nécessaires pour exécuter votre programme.

La solution la plus simple consiste à incorporer un script shell fonctionnel dans un flux de travail AppleScript ou Automator. Les deux gèrent les arguments de tuyauterie ou les chemins de fichier vers stdin / stdout afin que vous puissiez interagir avec le script si vous le souhaitez.

Le site Automatisation Mac OS X a quelques bons tutoriels pour vous aider à démarrer si cela a du sens pour résoudre votre problème.

De plus, si vous cherchez un outil pour emballer votre script bash et un document automator / applescript dans une seule unité, l’application de création de paquetages est disponible gratuitement dans le cadre de la Utilitaire de configuration iPhone . C'est plus de travail, mais rendra tout utilisateur de Mac plus à l'aise pour installer votre outil.

Pour une option open source étonnante - essayez Platypus - http://sveinbjorn.org/platypus/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.