開発ワークステーションでは、毎朝同じコマンドを開始しなければならないことがよくあります。
zeus start
、zeus server
(zeus経由でRailsを起動)、redis-server
、その他3つ。
多くの人がいつも走らせていると言うでしょうが、私は自分の仕事でたくさんの仕事をしていて、別々のRailsプロジェクトに取り組んでいる間、それらすべてを走らせていることに気づきます。
理想的にはウィンドウをプログラムで分割することによって(⌘-D
のように)、これらすべてを1つのコマンドから開始する、作成できる高度なエイリアスはありますか。
私はoh-my-zshでiTerm2を使用しています。
それらがすべて同じウィンドウにあるかどうかは気になりません(何らかの形でバックグラウンドプロセスとして実行されています)が、出力を確認し、各コマンドからの出力を操作する必要があるため、それがどのように機能するかわかりません。
ありがとう!
これをiTerm2から直接簡単に呼び出して、プレスをシミュレートできます ⌘D:
osascript -e 'tell application "System Events" to key code 2 using command down'
これを機能させるには、プログラムをバックグラウンドで起動する必要があります。そうしないと、osascript
を実行できません。
some-command &
osascript -e '…'
そこから新しいiTerm2ウィンドウが表示されるので、AppleScriptのwrite text
オプションを使用して、さらにシェルコマンドを実行する必要があります。詳細については、こちらを参照してください: AppleScriptを設定して新しいiTerm2タブを開き、ディレクトリを変更するにはどうすればよいですか?
ここでの答えは少し時代遅れです。これは、同様のことを行うサンプルスクリプトです。
tell application "iTerm"
tell current window
-- create a tab for background db stuff
create tab with default profile
tell current session
write text "mongod &"
write text "redis-server &"
end tell
close current tab
-- create tab to run aioc server
create tab with default profile
tell current session
write text "title server"
write text "aactivate"
write text "arunserver"
-- split tab vertically to run scheduler
split vertically with default profile
end tell
-- run scheduler
tell last session of last tab
write text "title scheduler"
write text "aactivate"
write text "ascheduler"
-- split tab vertically to run main controller
split vertically with default profile
end tell
-- run main_controller
tell last session of last tab
write text "title main_controller"
write text "aactivate"
write text "amain_controller"
-- split tab vertically to run aggregator
split vertically with default profile
end tell
tell last session of last tab
write text "title aggregator"
write text "aactivate"
write text "aggregator"
end tell
end tell
end tell