В обсуждении статьи “Как заставить работать симлинки в Dropbox”
В целом я сейчас ищу решение такой проблемы:
- заставить системную скриншотоделалку мака (та что по shift+cmd+3/4) кидать скрины в /Dropbox/Public/scr (добился этого с помощью Onyx)
- как-то эти скриншоты автоматически переименовывать в что-то вроде “2009-09-26_scr1.png”
- а уже потом кидать результат в буфер.
Дальше было уточнение, что покупать Hazel для этой небольшой задачи смысла нет, но в этой статье рассмотрю именно Hazel, а решение штатными средствами (или shell, или Automator, или Action Script) опишу в отдельной статье.
Хочу сказать, что с удовольствием приму идеи для проработки на блоге – и мне полезно, и читателям интересно.
Итак,
Приступим к решению задачи. Описывать, как установить Hazel, не буду – всё очевидно. Я слегка поменял каталоги и имена файлов по своему вкусу.
Идём в “System Preferences” и запускаем Hazel. В закладке “Info” я сразу выставляю “Show Hazel status in the menu bar” – на время создания и отладки очередного правила полезно иметь быстрый доступ к конфигурации.
Скриншоты, создаваемые комбинацией “Shift+Cmd+3/4″, помещаются на Desktop, поэтому включаем слежение за этим каталогом (~/Desktop) и создаём правило “Screenshots” (не забываем сделать его активным)
Задаём условие отбора скриншотов – ‘Name “starts with” “Screen shot”‘ и ‘Extension “is” “png”‘. Затем задаём действия, выполняемые над этими файлами.
Действие 1. “Move file” to folder “Screenshots”. Перемещаем файл в Dropbox: ~/Dropbox/Public/Screenshots (предварительно этот каталог создаём)
Действие 2. “Rename file” with pattern “screenshot-<date created>-<extension>”
Меняем шаблон “date created” (если скриншоты делаются быстрее, чем раз в секунду, то можно добавить поле миллисекунд):
Действие 3. “‘Run shell script’ ‘embedded script’”. Логика по формированию Public URL и помещению в Clipboard.
Обратите внимание, что идентификатор dropboxId=”243759″ нужно поменять на свой, приведённый в любом Dropbox Public URL.
Public URL помещается в clipboard, а также дописывается в файл на десктопе “screenshots.txt”. Полный текст скрипта:
### # Необходимо сконфигурировать свой Dropbox userid # Он берётся из Public URL # http://dl.getdropbox.com/u/243759/Screenshots/screenshot-20090929-121921.png dropboxId="243759" dropboxURL="http://dl.getdropbox.com/u/${dropboxId}/Screenshots" # Полный путь файла, перенесённому в каталог Dropbox # /Users/ctrld/Dropbox/Public/Screenshots/screenshot-20090929-122523.png filePath="$1" # Извлекаем имя файла # screenshot-20090929-122523.png fileName=`basename "${filePath}"` # Генерируем полный Public URL # Однако нужен контроль, что синхронизация завершена -> TODO dropboxPublicURL="${dropboxURL}/${fileName}" # Записываем результат в конец файла screenshots.txt на десктопе echo "${dropboxPublicURL}" >> ~/Desktop/screenshots.txt # Заносим линк в clipboard. # Внимание - старое содержимое clipboard перетирается # Источник: http://www.macosxhints.com/article.php?story=2003050204544799 echo "${dropboxPublicURL}" | pbcopy
Действие 4. Выводим Growl-уведомление.
Всё сохраняем и проверяем работу. Задача выполнена. Наслаждаемся или же продолжаем добавлять или шлифовать функциональность.
Конечно же, все те же операции можно сделать и штатными средствами, но Hazel лично мне очень нравится.