Я хочу настроить быстрое действие Automator, которое запускает команду bbdiff
и передает ей выбранные файлы в Finder.
Я создал Quick Action и настроил его на получение «файлов или папок» в «Finder.app».
Затем я добавил действие «Выполнить сценарий оболочки» и установил для оболочки значение «/ bin / bash» и передал ввод «в качестве аргументов». Сценарий:
/usr/local/bin/bbdiff "$1" "$2"
Если я запускаю этот сценарий вручную из Automator или Terminal (заменяя аргументы реальными именами файлов), он запрашивает у меня авторизацию основной программы для управления BBEdit, и затем он работает.
Но если я запускаю его из Finder, я получаю эту ошибку:
В действии «Запуск сценария оболочки» возникла ошибка: «Вы должны разрешить bbdiff
отправлять события в приложение BBEdit.
Используйте tccutil reset AppleEvents
для сброса разрешений системы и повторите попытку.
bbdiff: ошибка: -1743 ”
Я попытался запустить tccutil reset AppleEvents
и снова запустить действие, но оно показало ту же ошибку.
Я также пытался добавить bbdiff, / bin / bash и Finder на вкладки «Доступность» и «Полный доступ к диску» в «Системные настройки»> «Конфиденциальность», но ничего не изменилось. Похоже, вам нужно что-то добавить на вкладку «Автоматизация», чего нельзя сделать вручную.
Как получить разрешение на команду UNIX, например bbdiff
, для управления приложением?
UPDATE:
Мне удалось обойти эту проблему с помощью действия «Запустить AppleScript» вместо «Запуск сценария оболочки» с помощью этого сценария:
on run {input, parameters}
tell application "BBEdit" to compare (item 1 of input) against (item 2 of input)
return input
end run
При первом запуске я получил приглашение позволить Finder контролировать BBEdit, и затем он заработал.
Но это не сработает для других сценариев оболочки, поэтому вопрос все еще открыт.