Tmuxを使ってプロジェクトの開発環境をいっぱつで起動するヘ(^o^)ノ

一つのプロジェクトで複数のタブを開いて作業したりしませんか?

Rubyのアプリケーションであれば foreman を使ったりするかもしれませんが、、

Shinosaka.rbで今回のテーマにぴったりなプロジェクトがあるのでそいつを使って試してみます。

github.com

まずは セッションを作成してみましょう。

$ echo "SESSION_NAME=tebukuro" >> bin/tmux_launch.sh
$ echo "tmux new-session -d -s \$SESSION_NAME" >> bin/tmux_launch.sh

実行権限をつけてあげます。

$ chmod u+x bin/tmux_launch.sh

スクリプトを実行してattachしてみましょう

$ sh bin/tmux_launch.sh
$ tmux attach -t tebukuro

tebukuroというsessionにattachできました。

exit で tumuxを閉じましょう。

tebukuroは同じリポジトリにbackend(rails)とfrontend(Koa)が混在してます。

server という名前のwindowを作成し、スプリットしたwindow上で実行してみましょう。

windowを作成します。

$ echo "tmux new-window -t \$SESSION_NAME -n 'server'" >> bin/tmux_launch.sh

作成したwindow上でRailsを起動してみます。

$ echo "tmux send-keys 'bundle; bin/rake db:migrate; bin/rails s' C-m" >> bin/tmux_launch.sh
$ sh bin/tmux_launch.sh
$ tmux attach -t tebukuro

Railsが無事起動しました。

次はfrontendですがwindowをスプリットしてKoaを起動してみましょう。

$ echo "tmux split-window -h" >> bin/tmux_launch.sh
$ echo "tmux send-keys 'yarn; yarn start' C-m" >> bin/tmux_launch.sh
$ sh bin/tmux_launch.sh
$ tmux attach -t tebukuro

Koaも起動しました。

最後にattachも追加しましょう。

$ echo "tmux attach -t \$SESSION_NAME"

せっかくなのでこの修正をPRしました。(mergeされるかどうかわかりませんが、、)

github.com

Happy Hacking٩( ‘ω’ )و