Как я могу автоматически выполнять команду оболочки, AppleScript или задачу запуска, когда я "сохраняю" в определенном приложении?

ОС: Маверикс

2 ответа2

0

Этот SO ответ, вероятно, отвечает на ваш вопрос - скрипт Bash, просмотр папки, выполнение команды.

Это не далеко от запуска cron, так как скрипт спит в течение 2 секунд и пересчитывает MD5-хэши для файлов в каталоге.

Если вам нужно реальное решение, управляемое событиями, вы можете попробовать fswatch или любое другое приложение /lib, используя FSEvent.

0

Вы ищете ключ 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) должна помочь вам. Также убедитесь, что записали преобразованный файл в другой каталог. В противном случае преобразование файла снова запустит скрипт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .