W komentarzach do jednego z moich poprzednich wpisów padła prośba o pomoc w stworzeniu skryptu Automatora (Mac OS X), który umożliwi poprzez użycie prawego przycisku na pliku EPUB uruchomienie operacji konwersji do pliku MOBI za pomocą oficjalnego programu kindlegen. Przepis w sumie do wykonania jest prosty, natomiast sama idea tego skryptu już raczej nie. Stąd ten wpis, ale przejdźmy do rzeczy.
- W Automatorze wybieramy format dokumentu (Choose a type for your document): Service.
- Zmieniamy opcję Service receives selected na files and folders.
- Przeciągamy do okienka głównego (Drag actions or files here to build your workflow) akcję: Run Shell Script.
- W tej akcji zmieniamy opcję Pass input: na as arguments.
- W samym okienku akcji wklejamy poniższy kod:
1234for f in "$@"do/sciezka_dostepu/kindlegen -dont_append_source > /dev/null 2>&1 "$f" &done - Tekst sciezka_dostepu zastępujemy prawidłową ścieżką dostępu do programu kindlegen.
PS. Jeśli chcemy użyć dodatkowych opcji np. -c2 dodajemy je po słowie kindlegen w taki sposób:
1 2 3 4 |
for f in "$@" do /sciezka_dostepu/kindlegen -c2 -dont_append_source > /dev/null 2>&1 "$f" & done |
Powyższy kod ma jedną wadę. Nie wiemy, co się dzieje podczas konwersji. Czy kindlegen przypadkiem nie wyrzucił jakichś ostrzeżeń? Czy nie było błędu, który skutkuje brakiem wynikowego Mobi? Lekarstwem na to jest następująca modyfikacja – zamiast /dev/null podajemy prawidłową ścieżkę dostępu do pliku, gdzie będą zapisywane dane z konwersji, np. ~/kindlegen.log (tylda oznacza katalog domowy zalogowanego użytkownika):
1 2 3 4 |
for f in "$@" do /sciezka_dostepu/kindlegen -c2 -dont_append_source > ~/kindlegen.log 2>&1 "$f" & done |