Сценарий Do Shell с правами администратора - PullRequest
0 голосов
/ 07 марта 2019

Я использую AppleScript для запуска сценария оболочки от имени администратора.

do shell script custom_command with prompt custom_prompt with administrator privileges

, который дает мне это приглашение, но я хотел бы иметь возможность изменить значок на нечто иное, чем значок терминала. Любая помощь будет оценена.

prompt

1 Ответ

1 голос
/ 08 марта 2019

Значок в диалоговом окне аутентификации исходит от приложения, использующего команду.

Чтобы получить пользовательский значок для значка, вы можете использовать вспомогательное приложение AppleScript для запуска сценария, но если osascript это все, что вы делаете, вы можете просто делать все, используя приложение (в противном случае все, что вы делаете, это используете osascript для запуска AppleScript, который запускает osascript).Чтобы создать приложение для osascript, отредактируйте сценарий в Редакторе сценариев , например:

do shell script "echo 'this is a test' >> ~/Desktop/Testing.txt" with administrator privileges

, затем сохраните его как приложение (оставьте параметры не отмеченными).Переименуйте копию файла значка, который вы хотите использовать, в applet.icns , откройте комплект приложений и замените существующий файл значка в / Contents / Resources / .Затем вы можете запустить приложение из Terminal , используя open /path/to/your/app

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

Передача аргументов в приложение немного отличается от osascript , но немного AppleScriptObjC позаботится об этом:

use framework "Foundation"
use scripting additions

# the first argument item is the applet/droplet executable path, so we'll just skip that
set args to rest of (arguments of current application's NSProcessInfo's processInfo() as list)

if args is not {} then
  do shell script "echo " & first item of args & " >> ~/Desktop/Testing.txt" with administrator privileges
end if

Вы можете запустить, что с помощью open /path/to/your/app --args “this is a test”

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...