Mac で sftp:// および sshfs:// URL を処理する単純な AppleScript アプリケーションを作成しようとしています。AppleScriptでカスタム URL ハンドラー アプリを作成する方法に関する優れたガイドに基づいて、次のような小さなアプリを作成しました。対応するスキームで URL をクリックするとうまく機能します。実際の作業は、sshfs(FUSE) を呼び出す別のシェル スクリプトで行われます。OS とのインターフェイスとして AppleScript を使用しています。
on open location theURL
set cmd to (quoted form of (get POSIX path of (path to resource "sshfs.sh" in directory "Scripts"))) & " " & theUrl
do shell script cmd
end open location
ただし、このカスタム URL ハンドラー AppleScript アプリは、 Terminal からコマンドを使用すると機能しませんopen
。
open sftp://host/path
on run argv
他のハンドラーを追加しようとしましたが、コマンドラインの方法で、私が記述したハンドラーではなくハンドラーを呼び出すことがわかりましたが、渡された URL 引数にアクセスする方法がわかりません。スクリプトを直接呼び出すと、URL に正しくアクセスできますosascript my.applescript sftp://host/path
。ASObjC Runner を試してみましたが、役に立ちませんでした。
open
Unix コマンドで渡された引数を受け取るための標準ハンドラまたは AppleScript アプリケーションのメソッドはありますか? AppleEvents に依存しているようですが、AppleScript を使用してコマンドとネイティブ アプリの間で同じ魔法を実行する方法を説明している適切なリファレンスが見つかりません。