Xcode からプロジェクトの場所をターミナルで開く Behavior を作る。

Xcode ツール

Xcode で開いているプロジェクトに関する操作をターミナルで行いたい場合がたびたびあったので、Xcode からターミナルを開ける Behavior を作ってみました。


Xcode でプログラミングをしている最中に、開いているプロジェクトに関する操作をターミナルアプリを使って行いたくなる場合がたびたびあります。

たとえば CocoaPods のライブラリを更新したいときとか、Git のタグを付けたいとかどうとか、そんなときにターミナルを開いて目的のパスまで移動するのが何かと手間がかかるので、Xcode の Behavior から実行できるスクリプトを作ってみました。

プロジェクトのカレントを開く Behavior を作る

スクリプトファイルを作成する

Behavior を作るために、どんな動作をさせるかをスクリプトで作成します。スクリプトを書く言語はなんでもよくて、実行権限が与えられている必要があります。

Behavior からスクリプトが呼び出されると、環境変数 PWD にプロジェクトのルートディレクトリが設定されるため、ターミナルを開いてディレクトリをそれに変更します。

#!/usr/bin/osascript

on run argv
        set cmd to "cd" & " \"" & (do shell script "pwd") & "\""
        tell application "Terminal"
                activate
                tell application "System Events"
                        delay 0.5
                        tell process "Terminal" to keystroke "n" using command down
                end tell
                do script with command cmd in the front window
                
                return
        end tell
end run

動作としては、まず Terminal アプリを開いてアクティブにして、そこへ N を送信して新規ウィンドウを作っています。

そしてそこに、環境変数 PWD で受け取ったパスへ移動する cd 命令を発行します。


このような内容でスクリプトファイルを作成します。

今回は open-in-terminal.applescript という名前で保存しておくことにします。場所はとりあえず ~/tools/xcode にしておくことにしますが、どこでも構いません。

そうしたら、次のコマンドを実行して、スクリプトに実行権限を添えれば完成です。

chmod +x open-in-terminal.applescript

スクリプトを Behavior に登録する

Behavior への登録は Xcode Preferences... から行います。

設定画面が表示されたら、ツールバーから Behaviors を選択して、左下にある ボタン を押すと、カスタム動作を作成できます。


とりあえず、名前を Open in Terminal など適当につけたら、右側のエリアでどのような動作をさせたいかを設定します。

今回は、先ほど作成したスクリプトを実行したいので、いちばん下の Run にチェックを入れて、実行したいスクリプトとして先ほど作成したものを選択します。

ショートカットキーを設定する

このとき左側の キー が書かれたところをクリックすると、この Behavior にショートカットキーを設定することができます。

使う頻度が多い場合は、ここにキーの組み合わせを設定しておくと、メニューを辿って実行する手間が省けて便利です。今回自分は X を設定してみることにしました。

Behavior を使ってターミナルを開く

これで設定完了です。

使い方は簡単で、プロジェクトを開いている状態で、メニューから Xcode Behaviors と辿り、実行したい Behavior を選択することで実行できます。

こうすることで、自動的にターミナルが開かれて、カレントディレクトリがプロジェクトのルートディレクトリに移動します。