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.

kindlegen nejaky.epub

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

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

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

Napísal rony