Установить службу автоматизатора через командную строку

2

Я хотел бы автоматизировать процесс установки моего Mac для сервисов. Вот мой сценарий:

#!/bin/sh
rm -rf ./tempWorkflows
mkdir tempWorkflows
for filename in ./*.workflow; do
    cp -R "$filename" ./tempWorkflows/"$filename"
done
for filename in ./tempWorkflows/*.workflow; do
    open $filename
done
rm -rf ./tempWorkflows

Это в основном скопировать все мои *.workflowи открыть его. Тем не менее, open $filenameон запрашивает и запрашивает подтверждение:

неожиданно возникнуть

Есть ли способ добавить --no-promptили подобный флаг для команды открытия?

РЕДАКТИРОВАТЬ:

Я использую El Capitan 10.11.3

ЕЕС
источник
Это выполнимо, однако, в зависимости от версии OS X, которую вы используете, будет иметь отношение к реализации метода.
user3439894
Обновлена ​​информация о Mac OS. Я использую 10.11.3, спасибо
EES
Это можно сделать с помощью AppleScript или Automator, создав пакет приложений, поскольку это необходимо для того, чтобы приложение могло контролировать ваш компьютер, нажимая кнопки «Установить» и «Готово» в диалоговом окне «Установщик службы». Делая приложение Automator , вероятно , будет проще всего , используя Shell Script Run Action и пару строк AppleScript кода , используя osascript, добавив несколько строк после open $filenameстроки. Если вам интересно, я создам для него ответ, однако у меня нет OS X 10.11, хотя это работает в OS X 10.10, оно также должно работать в OS X 10.11. Дай мне знать.
user3439894
КСТАТИ Вы должны иметь кавычки $filenameв open "$filename"в случае , если любой из ваших Automator служб .workflowфайлов имеют пробелы в именах.
user3439894

Ответы:

2

Если Automator закрыт, откройте Automator и выберите « Приложение» в разделе « Выберите тип документа» , затем нажмите кнопку « Выбрать» . Если он уже открыт, выберите « Файл» > « Создать» и выберите « Приложение» в разделе « Выберите тип документа» .

Добавьте к нему действие сценария запуска оболочки .

Скопируйте и вставьте код оболочки вы в настоящее время есть в Run Shell Script действий .

Добавьте следующие строки кода после:open $filename

sleep 1
osascript -e 'tell application "System Events" to click button "Install" of window "Service Installer" of process "Automator"'
sleep 1
osascript -e 'tell application "System Events" to click button "Done" of window "Service Installer" of process "Automator"'

Примечание: Вы также должны добавить соответствующую cdстроку над rm -rf ./tempWorkflowsстрокой, которая у вас есть в вашем коде , например, cd /some/directory/pathгде это путь к .workflowпапке, в которой находятся ваши файлы для обработки вашим скриптом .

Сохраните приложение Automator в качестве службы установки Install Automator . Следующий:Установите Automator Service

Откройте Системные настройки > Безопасность и конфиденциальность > Специальные возможности > Конфиденциальность

Нажмите значок блокировки, чтобы внести изменения и введите свой пароль, затем нажмите кнопку разблокировки .

Используйте [+], чтобы добавить службу Install Automator, или перетащите пакет приложений в окно. доступность Теперь это позволит приложению Install Automator Service запускать код вашей оболочки и использовать код AppleScript для нажатия кнопки Install и последующей кнопки Done в диалоговом окне Service Installer в процессе установки ваших Служб .

user3439894
источник