- PVSM.RU - https://www.pvsm.ru -
Всем привет!
Как известно, программисты люди такие, что легких путей не ищут. Недавно у меня возникла потребность в автоматической загрузке свеже-сделанных скриншотов на свой ftp (именно свой и никакой другой). Долгие поиски софта, решающую задачу, для OS X по интернету привели меня в небольшую депрессию. Платный софт я даже не искал, ибо не хочу платить за функции, которые и сам могу написать, а бесплатные программы поражали меня, до самых костей, своей кривостью: скрины загружались не с первого раза, иногда загружалось только половина скрина и вообще, с моей склонностью к перфекционизму, снимать скриншот какого-либо окна и не видеть на нем прекрасной, красивой тени, какую оставляет стандартная утилита OS X — это ад. Поэтому было принято решение занять субботний вечер решением этой задачи собственноручно.
Не долго думая, я вспомнил про изумительную фичу ОС от Apple — Automator и решил автоматизировать загрузку файлов на FTP и рассказать об автоматоре хабрасообществу и неведающим о нем apple-юзерам, поэтому готового файла, который можно просто запустить и все произойдет не будет, будет инструкция и объяснение что к чему, дабы научить пользоваться утилитой и вдохновить других на автоматизацию действий у себя в системе.
Под катом терия, практика и много картинок.
Automator — Эдакая обертка для shell script в *nix от Apple, позволяет автоматизировать все на свете, абсолютно любое движение пользователя. Когда то давно я им пользовался для сборки своего дипломного проекта на Node-Webkit, автоматор позволил мне по нажатию комбинации горячей клавиши пересобрать проект, запаковать его в *.nw архив и тут же его запустить.
В Автоматоре есть несколько типов скриптов, которые можно создать:
1. Workflow — Простой исходник действия, которого мы будем программировать.
2. Application — Тотже workflow, только его можно запускать и он будет автономно работать в вашей OS X
3. Service — Все тоже самое, только скрипт будет доступен во вкладке «Service» тех программ, которые вы выберете при создании скрипта (на эту штуку можно будет потом повесить горячие клавиши)
4. Printing Plugin — Workflow, который будет доступен в окне печати
5. Folder Action — хук, который будет запускаться сразу, как обновится папка (добавится, удалится файл)
6. Celendar Alarm — тут говорить нечего, итак понятно: создаем workflow, который срабатывает по ивенту в календаре (собственно cron задача)
7. Image Capture Plugin — workflow, который доступен в окне получения изображения с камеры (принимает снятое изображение на вход)
Понятно, что нам нужно отлавливать действие создания скриншота и сразу после него — загружать скриншот на сервер, поэтому наш выбор типа скрипта — Folder Action.
По умолчанию, все скриншоты создаются в папке рабочего стола и ясно, что нельзя вешать хук для загрузки файла на фтп на рабочий стол, чтобы не хламить свой сервер, поэтому нам придется немного перенастроить стандартную утилиту создания скриншотов:
mkdir ~/Pictures/screenshots && defaults write com.apple.screencapture location ~/Pictures/screenshots
Теперь наши скриншоты будут создаваться в этой папке.
Переходим в сам Automator и делаем следующее:
Это еще не все. Теперь нам надо подвязать хук к папке, для этого нужно нажать правой кнопкой по папке, выбрать пункт Service->Folder Actions Setup… и выбрать скрипт, который мы только что создали
Для того, чтобы все заработало необходимо перезапустить компьютер.
И все, делаем скриншот как и делали раньше и он будет автоматически загружаться на ваш ftp сервер.
PS Хочу узнать нужны ли еще статьи о том что и как можно делать с помощью Apple Automator и о других фичах системы OS X о которых мало говорят?
Автор: toxa_1
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mac-os-x/50325
Ссылки в тексте:
[1] Вот ссылка на github: https://gist.github.com/aka-toxa/7851913
[2] Источник: http://habrahabr.ru/post/205314/
Нажмите здесь для печати.