Applescript не принимает команды arRsync sdef?
Я использую графический интерфейс с открытым исходным кодом для rsync под названием "arRsync". Это прекрасно работает, но нет способа автоматизировать его.
Я пытаюсь использовать Applescript для запуска предустановки (которую вы определяете в Приложении), используя следующий простой скрипт:
tell application "arRsync" to runPreset "presetTest1"
Проблема в том, что Applescript считает "runPreset" переменной, а не командой. Я также попробовал вариант "расскажи / кончи - расскажи" выше, без игры в кости. Команда runPreset является частью arRsync.sdef
Вы можете найти проект arRsync здесь
Я попытался открыть оба файла Info.plist внутри приложения и установить флажок "Scriptable" (или установить "true" для тех из вас, у кого нет редактора списка свойств), но я все еще застрял.
Я начинающий автор сценариев, когда дело доходит до Какао: р помощь будет принята с благодарностью
1 ответ
В двоичном файле arRsync отсутствует словарь сценариев. Выполните сборку из исходного кода, сначала сделав следующие изменения:
- Отредактируйте Info.plist в проекте, установив для параметра "Scriptable" значение true.
Исправьте словарь сценариев проекта arRsync.sdef. Код для
runPreset
Команда имеет одну букву слишком мало (коды команд должны быть длиной в четыре фишки или восемь символов). Добавить персонажа вrunPreset
код атрибута; почти любой персонаж будет работать. При желании файл можно укоротить и упростить, заменив стандартные и текстовые пакеты включением. Создайте резервную копию оригинального файла и создайте новый arRsync.sdef, содержащий:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd"> <dictionary title="arRsync Terminology" xmlns:xi="http://www.w3.org/2003/XInclude"> <xi:include href="file:///System/Library/ScriptingDefinitions/CocoaStandard.sdef" xpointer="xpointer(/dictionary/suite)"/> <suite name="arRsync Suite" code="arRs"> <command name="runPreset" code="runPPrst"> <cocoa name="runPreset" class="scriptController"/> <direct-parameter type="any"/> </command> </suite> </dictionary>
В качестве альтернативы, вы можете просто заменить
runPreset
Элемент команды с одним сверху.- Добавьте arRsync.sdef к фазе "Копирование ресурсов комплекта" цели arRsync
- Переключитесь на сборку выпуска ("Черная Борода" - это название для отладочной сборки).
- Построить это.
Это должно привести к созданию скриптовой версии arRsync. Как вы уже поняли, вам также может понадобиться поиграть с целевым SDK.