Автоматизация рутины в OS X. Урок 16. Java Script Automation+Terminal+Apple Script = Сила
В предыдущих 15 уроках мы говорили об автоматизации посредством JavaScript Automation и с помощью утилит командной строки. Но настоящая магия начинается при объединении этих двух способов и Apple Script. Эта статья о том, как подружить между собой три мощнейших инструмента автоматизации в OS X.
Зачем объединять командную строку, Java Script и Apple Script?
Есть вещи, которые нельзя автоматизировать на JXA, но можно с помощью командной строки. Есть вещи которые можно автоматизировать на JXA, но они уже давно автоматизированы на Apple Script и писать новый скрипт на другом языке пустая трата времени.
Приведем несколько теоретических примеров, когда необходимо объединение этих трех технологий в одной автоматизации:
Пример 1
С помощью JXA создаем несколько текстовых документов по шаблону, потом упаковываем их в архив и через программу на Apple Script, найденную в интернете, отправляем архив списку адресатов.
Пример 2
На JXA пишем парсер для сохранения картинок с веб-страницы, с помощью Image Magick делаем их черно-белыми, а после применив Apple Script, генерируем из них альбом в PDF.
Необходимость запускать за один раз сразу три автоматизирующих скрипта в подобных случаях — лишняя трата времени.
А теперь перейдем к практике.
Как выполнить команду в терминале с помощью JXA?
//Создаем переменную для приложения «Терминал» Terminal = Application("Терминал"); //Запускаем команду ls, которая является аналогом команды dir, привычной для пользователей Linux и Windows и отображает список файлов и папок в текущей директории с помощью метода doScript(); Terminal.doScript("ls");
После выполнения скрипта откроется окно терминала и отобразится список файлов в корневой директории текущего пользователя. Чтобы выполнить новую команду в активном окне терминала надо еще раз вызвать метод doScript, а для выполнения команды в новом окне необходимо создать новую переменную для приложения «Терминал».
Terminal2 = Application("Терминал"); Terminal2.doScript("ls");
Как запустить JXA-скрипт из терминала?
Для примера напишем простенький скрипт из двух строк, который открывает новый текстовый файл:
// Кладем в переменную приложение TextEdit textEdit = Application("TextEdit"); // Создаем новый документ var newDoc = textEdit.Document().make();
Теперь сохраним его в корневой директории активного пользователя.
После этого откроем терминал и наберем там следующую команду:
osascript opentext.scpt
В результате вышеописанный скрипт выполнится и откроется новое окно с пустым текстовым документом.
Как запустить файл Apple Script из терминала?
Если JXA появилась только в 2014 году, в операционной системе OS X Yosemite и готовых скриптов в интернете очень и очень мало, то автоматизации на Apple Script создаются уже второй десяток лет и в открытом доступе есть десятки тысяч готовых решений на все случаи жизни. И их, безусловно, стоит объединять с командной строкой и JavaScript, чтобы сэкономить собственное время на написании кода.
Итак, давайте разберемся, как запустить файл, написанный на Apple Script из терминала.
Для примера напишем простенький скрипт, который открывает приложения Finder и сохраним его под именем «openFinder».
tell application "Finder" activate make new Finder window end tell
Открываем терминал и запускаем команду:
osascript openFinder.scpt
Соответственно, использовать Apple Script в JXA можно с помощью метода doScript:
Terminal = Application("Терминал"); Terminal.doScript("osascript openFinder.scpt");
Предыдущие публикации из цикла «Автоматизация рутины в OS X» вы можете найти по следующим ссылкам:
- Автоматизация рутины в OS X. Урок 1. Пакетная обработка изображений
- Автоматизация рутины в OS X. Урок 2. Генерация слайдов для презентаций
- Автоматизация рутины в OS X. Урок 3. Рассылаем спам
- Автоматизация рутины в OS X. Урок 4. Простейший парсинг почтового ящика
- Автоматизация рутины в OS X. Урок 5. Пакетная конвертация текстовых файлов
- Автоматизация рутины в OS X. Урок 6. Простейший парсинг веб-страниц
- Автоматизация рутины в OS X. Урок 7. Пакетная конвертация видео и аудио
- Автоматизация рутины в OS X. Часть 8. Архивируем и анализируем записи из «Заметок»
- Автоматизация рутины в OS X Часть 9. Пакетная архивация файлов
- Автоматизация рутины в OS X. Урок 10. Анализируем собственную продуктивность
- Автоматизация рутины в OS X. Часть 11. Автоматизируем показ презентаций
- Автоматизация рутины в OS X. Урок 12. Работаем с электронными таблицами
- Автоматизация рутины в OS X. Урок 13. Основы работы с Pages
- Автоматизация рутины в OS X. Урок 14. Редактирование изображений с помощью Image Magick
- Автоматизация рутины в OS X. Урок 15. iMacros
Еще айфоновские темы:
- Как удалить приложение из покупок в iOS 10
- Как узнать залочен iPhone или нет
- Как включить мобильный интернет на iPhone
✅ Подписывайтесь на нас в Telegram, ВКонтакте, и Яндекс.Дзен.