У меня есть пользовательский сценарий, который был бы намного полезнее, если бы он мог динамически изменять часть своего выполнения в зависимости от того, что хотел пользователь. Передача простых переключателей легко решила бы эту проблему, но я не вижу способа сделать это.
Я также пробовал вставить ключевое слово в имя скрипта, но Xcode копирует скрипт в имя файла перед выполнением, так что это тоже не сработает.
Так кто-нибудь знает способ вызвать пользовательский скрипт с каким-то аргументом? (кроме обычных переменных %%%var%%%)
Пользовательские скрипты доступны через меню скриптов в строке меню Xcode (между меню Window и Help). Мой вопрос не о сценариях фазы сборки "run script". Приношу свои извинения за то, что оставил это несколько двусмысленным.





Пользовательские скрипты доступны через меню скриптов в строке меню Xcode (между меню Window и Help). Не знал, как еще их назвать. Я спрашиваю не о сценариях этапа сборки "run script".
Я полагаю, вы могли бы сделать что-то вроде этого:
#!/bin/bash
result=$( osascript << END
tell app "System Events"
set a to display dialog "What shall be the result?" default answer ""
end tell
return text returned of a
END
)
# do stuff with $result
Вы не можете передавать параметры в пользовательские скрипты - вместо этого пользовательские скрипты работают с контекстом, в котором вы работаете (например, с выбранным файлом, выделенным текстом и т. д.).
Вы должны использовать контекст, чтобы определить, чего действительно хочет пользователь.
Существуют встроенные служебные сценарии, которые позволяют запрашивать пользователя и записывать ответ.
Например, вы можете запросить строку, а затем на ее основе выполнить определенную задачу.
Приглашение String:
STRING = `%%%{PBXUtilityScriptsPath}%%%/AskUserForStringDialog "DefaultString" "DefaultWindowName"`
Если вы заметили, вы просто вызываете апплескрипт, который они написали, используя статический путь. Вы можете написать свой собственный диалог applescript и разместить его там, если хотите, и обойти необходимость в громоздком синтаксисе osascript. Есть и другие (для файлов, папок, приложений и т. д.)