AlfredのWorkflows機能で、指定のファイルに任意のコマンドを実行する


## はじめに

Alfred便利ですよね、Macユーザーならぜひ使って欲しいツールです。
しかしながら、Alfredの機能を拡張したいときがあります。

わけあって資料関係のバージョン管理にSubversionを使っているのですが、
競合しないように編集前にlockをかけるようなルールにしていまして、
このlockをするのにいちいちターミナルを開いてsvn lockして・・・
というのが億劫だったので、Alfredでできるようにしました。

AlfredはWorkflowsという便利な機能があるので、こんな機能追加も簡単にできます
※Workflowsを使用するには、Powerpackというのを購入しなければなりません。17ユーロで高くもないので、買うのがおすすめです。
http://www.alfredapp.com/powerpack/

## AlfredのWorkflowsを追加する

まずはAlfredを開きます

![スクリーンショット 2013-09-23 15.15.59.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/070fa40b-cfc6-8999-5179-dda31ab6d982.jpeg "スクリーンショット 2013-09-23 15.15.59.jpg")



---

Workflowsを選択すると、下画面のようになります
![スクリーンショット 2013-09-23 15.21.20.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/ca62e37d-93ed-725d-4c9f-17a0b968c156.jpeg "スクリーンショット 2013-09-23 15.21.20.jpg")



---

下部にある+ボタンをクリックし、[Blank Workflow]を選択します
![スクリーンショット 2013-09-23 15.17.35.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/da4bf0b7-e232-d294-af89-cac8d8a2c4f8.jpeg "スクリーンショット 2013-09-23 15.17.35.jpg")



---

適宜名前を付けます
![スクリーンショット 2013-09-23 15.17.53.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/c13accc8-48cc-f1d1-e5d6-393753c189a3.jpeg "スクリーンショット 2013-09-23 15.17.53.jpg")

---

画面右にある+ボタンをクリックし、[Inputs]⇒[File Filter]を選択します
![スクリーンショット 2013-09-23 15.24.36.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/c33f033f-1401-3933-be4f-8dcee2e91b7e.jpeg "スクリーンショット 2013-09-23 15.24.36.jpg")

---

Keywordに、コマンド名を設定します
Placeholder Titleは説明で、svn lock~~とかAlfredで入力したときに表示される名前です。適宜設定してください。完了したら[Save]をクリックしてください

![スクリーンショット 2013-09-23 15.25.42.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/ca5d2121-1d44-dcd7-39ef-3462d6d8e0ba.jpeg "スクリーンショット 2013-09-23 15.25.42.jpg")

---

同じ要領で、画面右にある+ボタンをクリックし、今度は[Actions]⇒[Terminal Command]を選択してください

![スクリーンショット 2013-09-23 15.27.16.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/58d261eb-97dc-8a8b-04c3-2a1e96c09fb3.jpeg "スクリーンショット 2013-09-23 15.27.16.jpg")

---

Scriptの欄に、Terminalのコマンドを入力します。今回はsvn lockコマンドを行いたいので、[svn lock {query}]と入力します。queryには、さっき作成したFile Filterのファイルパスが入ると思ってください。終わったら[Save]をクリックしてください
※exitしないとターミナルが表示されたままになるので、こうしていますが、不要なら消してください

![スクリーンショット 2013-09-23 15.36.00.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/b4ed4ea0-cbf0-c4a6-8f10-a6c712b06d66.jpeg "スクリーンショット 2013-09-23 15.36.00.jpg")

---

画面に下のように２つオブジェクトができたと思います。
あとはこの２つをつなげば完了です。

![スクリーンショット 2013-09-23 15.30.16.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/4b55d5e2-b21b-937e-4c81-e46c99de54cf.jpeg "スクリーンショット 2013-09-23 15.30.16.jpg")

---

svn lockにマウスオーバーすると右側に突起が出てくるので、それをクリックして、Terminal Commandにドラッグします

![スクリーンショット 2013-09-23 15.30.55.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/6e6845cd-63ad-f292-b5e7-6dc76293f0d0.jpeg "スクリーンショット 2013-09-23 15.30.55.jpg")

---

これで完了です！

![スクリーンショット 2013-09-23 15.31.35.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/21fa1280-cccc-3da7-5d33-caac54146aa1.jpeg "スクリーンショット 2013-09-23 15.31.35.jpg")

---

Alfredを起動して、svn lock hogehogeと打ってみましょう
これを実行すると、svn lock Qiitaメモ.txtコマンドが実行されます


![スクリーンショット 2013-09-23 15.32.51.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/0c8d1899-38cf-3959-55e7-8d72ea818e24.jpeg "スクリーンショット 2013-09-23 15.32.51.jpg")

## そのほか

僕はサーバーにSSH接続するのを簡易化するために、下のようなコマンドでつなげるようにしています。
※Fileを扱わない場合は、[Inputs]⇒[File Filter]ではなく、[Inputs]⇒[Keyword]を使用しましょう

![スクリーンショット 2013-09-23 16.50.15.jpg](https://qiita-image-store.s3.amazonaws.com/0/7980/bc302767-3d2a-387c-aa77-47d1ecab9073.jpeg "スクリーンショット 2013-09-23 16.50.15.jpg")

## まとめ

今回わけあってsvn lockを題材にしましたが、git checkoutで戻してみたり、scpでサーバーにアップロードしてみたりと、いろいろなことが出来ると思います。

Alfred便利です