Как я могу автоматически выполнять команду оболочки, AppleScript или задачу запуска, когда я "сохраняю" в определенном приложении?
ОС: Маверикс
Как я могу автоматически выполнять команду оболочки, AppleScript или задачу запуска, когда я "сохраняю" в определенном приложении?
ОС: Маверикс
Этот SO ответ, вероятно, отвечает на ваш вопрос - скрипт Bash, просмотр папки, выполнение команды.
Это не далеко от запуска cron, так как скрипт спит в течение 2 секунд и пересчитывает MD5-хэши для файлов в каталоге.
Если вам нужно реальное решение, управляемое событиями, вы можете попробовать fswatch или любое другое приложение /lib, используя FSEvent.
Вы ищете ключ WatchPaths
для launchd
. Создайте определение задания в ~/Library/LaunchAgents
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.convertToTxt</string>
<key>Program</key>
<string>/path/to/script</string>
<key>WatchPaths</key>
<array>
<string>/path/to/directory</string>
</array>
</dict>
</plist>
Сложно выяснить, какой файл был изменен. Сценарий будет запускаться каждый раз, когда файл создается или изменяется в этом каталоге, но launchd
дает подсказки, какой файл вызвал действие. Сортировка содержимого каталога по дате создания (ls -t /path/to/directory | head -1
) должна помочь вам. Также убедитесь, что записали преобразованный файл в другой каталог. В противном случае преобразование файла снова запустит скрипт.