0

我正在使用名为“arRsync”的 rsync 开源 GUI 前端。它工作得很好,但没有办法自动化它。

我要做的是使用 Applescript 使用以下简单脚本运行预设(您在应用程序中定义):

tell application "arRsync" to runPreset "presetTest1"

问题是 Applescript 认为“runPreset”是一个变量,而不是一个命令。我还尝试了上述的告诉/结束告诉变体,没有骰子。“runPreset”命令是 arRsync.sdef 的一部分

你可以在这里找到 arRsync 项目

我已经尝试在应用程序中打开两个 Info.plist 文件并勾选“可编写脚本”框(或者对于那些没有属性列表编辑器的人将其设置为“真”),但我仍然卡住了。

当谈到 Cocoa 时,我是一个脚本菜鸟:p 帮助将不胜感激

4

1 回答 1

1

arRsync 二进制文件缺少脚本字典。从源代码构建,首先进行以​​下更改:

  1. 在项目中编辑 Info.plist,将“Scriptable”选项设置为 true。
  2. 修复项目的脚本字典 arRsync.sdef。命令的代码runPreset少了一个字母(命令代码必须是两个 FourCC,或八个字符,长)。runPreset给's code 属性添加一个字符;几乎任何角色都可以工作。如果需要,可以通过用包含替换标准和文本套件来缩短和简化文件。备份原始文件并创建一个新的 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命令元素替换为上面的元素。

  3. 将 arRsync.sdef添加到arRsync 目标的“复制捆绑资源”阶段
  4. 切换到发布版本(“Blackbeard”是调试版本的名称)。
  5. 构建它。

这应该会产生一个可编写脚本的 arRsync 版本。正如您已经知道的那样,您可能还需要使用目标 SDK。

于 2010-12-01T04:29:31.787 回答