web-dev-qa-db-ja.com

Mac OSXでURLを開くためのbashスクリプトを作成する

OS Xでgit URLをインテリジェントに開くには、まず GitHub でリポジトリページを開こうとし、次に GitBox.app のようなものにフォールバックします。 。

この質問 非常に役立つことがわかりました。bashスクリプトをラップするAutomatorアプリを作成し(すべてのインテリジェントな処理を実行します)、 RCDefaultApp を使用してOSXをに設定しました。私のオートマターアプリを使用してgit://URLを開きます。

これはうまくいかなかったので、デバッグを試みました。引数を/tmp/output.txtに出力するようにbashスクリプトを設定しましたが、スクリプトがコマンドライン引数を取得していないことがわかりました*.txtファイルのデフォルトアプリとしてこれと同じオートマトンアプリを使用するようにOSXを設定すると、bashスクリプトは最初の引数としてファイルのパスを正しく取得しますが、URLでは機能しません。これを機能させる方法はありますか?

また、私は10.7を実行しています。

編集:Automatorアプリのスナップショットは次のとおりです。 Automator app

そして、これがその単純なbashスクリプトのテキストです(実際にgit:// URLを開くために使用するものではありませんが、引数がないことを示しています。

rm -f /tmp/output.txt
echo $0 >> /tmp/output.txt
echo $* >> /tmp/output.txt

そして、私が/tmp/output.txtで取得する唯一の出力は次のとおりです。

-
3
aaron

OS Xは、他のプラットフォームなどの他のシステム上の関連プログラムへのコマンドライン引数であるファイル、フォルダー、およびURLを処理しないため、このようには機能しません。 Automatorプログラム本当にファイルとフォルダのみを処理できます。


open locationに応答するAppleScriptベースのアプリケーションを作成する必要があります。

AppleScript Editorを開き、次のコードを貼り付けます(もちろんスクリプトを変更します)。

on open location myURL
    do Shell script "echo " & myURL & " > /Users/danielbeck/test"
end open location

保存アプリケーションとして。次に、作成したアプリケーションバンドルを選択し、右クリックしてパッケージの内容を表示、テキストエディターを使用してContents/Info.plistを編集します(コマンドでplutilを使用してXMLに変換した後) line(バイナリの場合)、またはAppleのDeveloperToolsの一部であるデフォルトのエディタ。

以下をトップレベルの構造に追加します(スクリーンショットは現在のXcodeでどのように見えるか、XMLはテキストエディターで追加するものです):

enter image description here

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>openme</string>
        </array>
        <key>CFBundleURLName</key>
        <string>AppleScript Testing URL</string>
    </dict>
</array>

これにより、openme://URLがそのアプリケーションに関連付けられます。プログラムを保存し、別のフォルダーに移動して、Launch Servicesを更新し、Webブラウザーのアドレスバーにopenme://URLを入力してテストします。

enter image description here

もちろん、openmegitに置き換え、echo呼び出しをシェルスクリプトに置き換えることをお勧めします。

4
Daniel Beck