Alfredからコマンド一つで作業環境を初期化する with Automator version 2

2016/03/21 00:34 by zk33 zk33
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
Automatorを使ってAlfredからコマンド一つで作業環境をセットアップ初期化する with Automator
複数のプロジェクトを同時に走らせていると、
別のプロジェクトの作業を始めようとした時初期化するのが億劫で
いくつかのプロジェクトを同時に走らせていると、あるプロジェクトの作業の後に、別のプロジェクトの作業を始めようとした時、作業環境を初期化するのが億劫で、「あーめんどくさい」ってついついRSSをチェックしたりくだらない動画を見てしまったりして大変よくないわけです。

理想しては
いうわけで、

* Alfredでプロジェクト名を入力すると、一発で必要なものが全て立ち上がる状態
* [Alfred](https://www.alfredapp.com/)でプロジェクト名を入力してenterすると、必要なものが全て立ち上がる

いうわけで、それを実現しみた
っていうことをずっときるようにしたいと思っていたのですが最近になって、それAutomator使ったらよいのでは、ということにようやく気づいたので備忘録兼ねメモ。

## 方法

1. Automatorを起動して「アプリケーション」を新規作成
2. 「アプリケーションを起動」を追加して、起動するアプリケーションに「ターミナル」を選択

ついでにこれをiCloudにぶち込んでおくと、複数の端末で同じように使えるので便利。![スクリーンショット 2016-03-21 0.17.58](https://mimemo.s3-ap-northeast-1.amazonaws.com/attachment/5b2cf516-d42b-44b4-b5d7-f872cdbc2a4f.png)

3. 「AppleScriptを実行」を追加

![スクリーンショット 2016-03-21 0.20.20](https://mimemo.s3-ap-northeast-1.amazonaws.com/attachment/c0556ef7-835c-4aa8-98c6-ee62ac93b05d.png)

4. ↓みたいなスクリプトを記述して保存。(今回はmimemoの例)
```
on run {input, parameters}
	-- ターミナルを起動もしくはアクティブにして
	tell application "Terminal"
		activate
		-- Cmd+Tを送信してタブを開く
		tell application "System Events" to keystroke "t" using command down
		-- タブが開くのをちょっとだけ待つ
		repeat while contents of selected tab of window 1 starts with linefeed
			delay 0.01
		end repeat
		-- ディレクトリ移動して
		do script "cd ~/_work/10mado/mimemo" in window 1
		-- Atom立ち上げて
		do script "atom ." in window 1
		-- gulpを走らせて
		do script "gulp front" in window 1
		-- もう一個タブ開いて
		tell application "System Events" to keystroke "t" using command down
		repeat while contents of selected tab of window 1 starts with linefeed
			delay 0.01
		end repeat
		-- ディレクトリ移動して
		do script "cd ~/_work/10mado/mimemo" in window 1
		do script "git status" in window 1
		-- ブラウザでテストサーバのURLを開く
		do script "open http://localhost:8081/" in window 1
		
	end tell
	
	return input
end run
```
4. 保存した場所がAlfredの検索対象になるようにする

今回はこれをmimemoという名前で保存して、Alfredで`mim`と入れると

![スクリーンショット 2016-03-21 0.05.07](https://mimemo.s3-ap-northeast-1.amazonaws.com/attachment/64c6d861-e0b1-4694-b699-c05fde96c5b4.png)

こうなって、enter押せば作業環境の初期化できるようになりました。めでたしめでたし。


AppleScriptのところは、AppleScriptで書かなくても、Automatorのワークフローでどうにかできる部分も多々あるはずだし、PSDファイル開くとか、conasuでそのプロジェクトのページ開くとか、色々と自由に設定できるので、色々と応用できる範囲は広そう。

ついでに、これをiCloud DriveのAutomatorフォルダに置いておくと、複数の端末で同じように使えたりして地味に便利。






      

いくつかのプロジェクトを同時に走らせていると、あるプロジェクトの作業の後に、別のプロジェクトの作業を始めようとした時、作業環境を初期化するのが億劫で、「あーめんどくさい」ってついついRSSをチェックしたりくだらない動画を見てしまったりして大変よくないわけです。

というわけで、

  • Alfredでプロジェクト名を入力してenterすると、必要なものが全て立ち上がる

っていうことをずっとできるようにしたいと思っていたのですが、最近になって、それAutomator使ったらよいのでは、ということにようやく気づいたので備忘録を兼ねてメモ。

方法

  1. Automatorを起動して「アプリケーション」を新規作成
  2. 「アプリケーションを起動」を追加して、起動するアプリケーションに「ターミナル」を選択

スクリーンショット 2016-03-21 0.17.58

  1. 「AppleScriptを実行」を追加

スクリーンショット 2016-03-21 0.20.20

  1. ↓みたいなスクリプトを記述して保存。(今回はmimemoの例)
on run {input, parameters}
	-- ターミナルを起動もしくはアクティブにして
	tell application "Terminal"
		activate
		-- Cmd+Tを送信してタブを開く
		tell application "System Events" to keystroke "t" using command down
		-- タブが開くのをちょっとだけ待つ
		repeat while contents of selected tab of window 1 starts with linefeed
			delay 0.01
		end repeat
		-- ディレクトリ移動して
		do script "cd ~/_work/10mado/mimemo" in window 1
		-- Atom立ち上げて
		do script "atom ." in window 1
		-- gulpを走らせて
		do script "gulp front" in window 1
		-- もう一個タブ開いて
		tell application "System Events" to keystroke "t" using command down
		repeat while contents of selected tab of window 1 starts with linefeed
			delay 0.01
		end repeat
		-- ディレクトリ移動して
		do script "cd ~/_work/10mado/mimemo" in window 1
		do script "git status" in window 1
		-- ブラウザでテストサーバのURLを開く
		do script "open http://localhost:8081/" in window 1
		
	end tell
	
	return input
end run
  1. 保存した場所がAlfredの検索対象になるようにする

今回はこれをmimemoという名前で保存して、Alfredでmimと入れると

スクリーンショット 2016-03-21 0.05.07

こうなって、enter押せば作業環境の初期化できるようになりました。めでたしめでたし。

AppleScriptのところは、AppleScriptで書かなくても、Automatorのワークフローでどうにかできる部分も多々あるはずだし、PSDファイル開くとか、conasuでそのプロジェクトのページ開くとか、色々と自由に設定できるので、色々と応用できる範囲は広そう。

ついでに、これをiCloud DriveのAutomatorフォルダに置いておくと、複数の端末で同じように使えたりして地味に便利。