0

「arRsync」と呼ばれるrsync用のオープンソースGUIフロントエンドを使用しています。うまく機能しますが、自動化する方法はありません。

私がやろうとしているのは、Applescript を使用して、次の単純なスクリプトを使用して (アプリケーションで定義した) プリセットを実行することです。

tell application "arRsync" to runPreset "presetTest1"

問題は、Applescript が「runPreset」をコマンドではなく変数と見なすことです。上記のテル/エンドテルのバリエーションも試しましたが、サイコロはありません。「runPreset」コマンドは arRsync.sdef の一部です

ここでarRsyncプロジェクトを見つけることができます

アプリ内で両方の Info.plist ファイルを開き、[スクリプト可能] ボックスにチェックを入れてみました (または、プロパティ リスト エディターを使用していない場合は [true] に設定します)。

Cocoaに関しては、私はスクリプトの初心者です:pヘルプは大歓迎です

4

1 に答える 1

1

arRsyncバイナリにスクリプト辞書がありません。ソースからビルドし、最初に次の変更を加えます。

  1. プロジェクトのInfo.plistを編集し、「Scriptable」オプションをtrueに設定します。
  2. プロジェクトのスクリプト辞書arRsync.sdefを修正します。コマンドのコードのrunPreset1文字が少なすぎます(コマンドコードは2つのFourCC、つまり8文字の長さである必要があります)。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または、コマンド要素を上からのものに置き換えることもできます。

  3. arRsyncターゲットの「バンドルリソースのコピー」フェーズにarRsync.sdefを追加します
  4. リリースビルドに切り替えます(「Blackbeard」はデバッグビルドの名前です)。
  5. それを構築します。

これにより、スクリプト可能なバージョンのarRsyncが生成されます。すでに理解しているように、ターゲットSDKで遊ぶ必要があるかもしれません。

于 2010-12-01T04:29:31.787 に答える