Automator: spustiť command-line nad označeným súborom

Označím vo Finderi nejaké súbory a chcem na ne poštvať nejaký binárny „command-line“. Povedzme, že mam binárku kindlegen, ktorá konvertuje ePub na mobi. Robí to nasledovne.

[code]kindlegen nejaky.epub[/code]

vytvorí nejaky.mobi

Toto sa mi ale samozrejme nechce vyťukávať na konzole a napriek presvedčeniu Windozákov, command-line idioti nevyťukávajú nezmysly do konzoly dokola a dokola.

V skutočnosti sa snažia to „uskriptovať“.

Uložte binárku kindlegen do zložky Applications.

V OS X teda chcem označiť vo Finderi ePuby a „cez pravé tlačítko“ spustiť „Service“ (nie ako Windows) ale ako kontextový príkaz. V tom „príkaze“ bude „skript“. No a ten si vytvorím v Automatore.

Spustíte Automator. Vyberte Service. Nájdite Get Selected Finder Items. V parametroch nastavte Service receive selected files or folders.

Pridajte Run Shell Script a Pass input nastavte na as arguments.

Shell nechajte na bash.

Vložte tento skript

[code]for f in "$@"
do
/Applications/kindlegen "$f"
done
exit 0[/code]

Vysvetlenie: cyklus for obslúži všetky označené súbory. Postupne ich teda ako parameter $f pridáva a spúšta kindlegen. Na konci vracia exit 0 aby nevyskakovali aj tak nezaujímavé chybové hlásenia.

Uložte Automator akciu a nazvite ju trebárs ePub to mobi.

Potom vo Finderi nájdete nejaký epub a cez pravé tlačítko v Services nájdite túto novú akciu.

Ďalšie štúdium mac developer

Môže sa Vám ešte páčiť...