Разрешить команду UNIX для управления приложением

Я хочу настроить быстрое действие Automator, которое запускает команду bbdiff и передает ей выбранные файлы в Finder.

Я создал быстрое действие и настроил его на получение «файлов или папок» в «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, управлять приложением?

ОБНОВЛЕНИЕ:

Мне удалось обойти это, используя действие «Run AppleScript» вместо «Run Shell Script» со следующим скриптом:

on run {input, parameters}
    tell application "BBEdit" to compare (item 1 of input) against (item 2 of input)
    return input
end run

В первый раз, когда я запустил его, я получил приглашение разрешить Finder управлять BBEdit, и тогда он сработал.

Но это не сработает для других сценариев оболочки, поэтому вопрос все еще открыт.


person JW.    schedule 10.04.2019    source источник
comment
У вас должна быть возможность добавить исполняемый файл (в любом случае в Mojave) на панель Системные настройки ›Безопасность и конфиденциальность› Конфиденциальность ›Доступность.   -  person red_menace    schedule 11.04.2019
comment
@red_menace Я пробовал, но безуспешно. Я думаю, что это нужно добавить в панель автоматизации, что нельзя сделать вручную.   -  person JW.    schedule 12.04.2019


Ответы (1)


В моем случае я смог исправить это, просто закрыв открытый в данный момент BBEdit, а затем открыв его снова. В моем случае я делал обновление BBEdit до появления ошибки.

person Grzegorz    schedule 19.11.2020