Skip to main content

iTerm2のスクリプトで開発環境を一発で立ち上げ、一瞬で停止する

· 4 min read

CleanShot20220217at144715 詳細は作業記録ログに書いてあります。開発の初速が上がった感じがある。


作業記録ログ

iTerm2のscriptを使って開発環境を立ち上げる時に移動したり、パネルを分割したりなどの処理を一発で立ち上げられるようにしたいと思っている。

pythonでスクリプトを記述するが下記のチュートリアルにしたがってpythonファイルを作成する https://iterm2.com/python-api/tutorial/

すると下記の場所にスクリプトを作成できる /Users/user/Library/Application Support/iTerm2

やりたいこととしては pdfme,とlabelmake.jpの開発に必要な状態にしたいことなので、下記のような感じ

  • pdfme
    • pdfmeディレクトリルートに移動
    • pdfme/commonディレクトリに移動してnpm run developを起動
    • pdfme/generatorディレクトリに移動してnpm run developを起動
    • pdfme/uiディレクトリに移動してnpm run developを起動
    • Pdfme-playgroundディレクトリに移動してnpm run startを起動

雑だけどこんな感じになった。既存のやつを適当にコピーしつつ変更しながら作ったので適当。

#!/usr/bin/env python3

import asyncio
import iterm2

async def main(connection):
await iterm2.Window.async_create(connection)
app = await iterm2.async_get_app(connection)

leftBottom = app.current_terminal_window.current_tab.current_session
await leftBottom.async_send_text('cd ~/Develop/pdfme-playground && npm run start\n')

rightBottom = await leftBottom.async_split_pane(vertical=True)
await rightBottom.async_send_text('cd ~/Develop/pdfme/packages/ui && npm run develop\n')

leftTop = await leftBottom.async_split_pane(vertical=False, before=True)
await leftTop.async_send_text('cd ~/Develop/pdfme\n')

rightTop = await rightBottom.async_split_pane(vertical=False, before=True)
await rightTop.async_send_text('cd ~/Develop/pdfme/packages/common && npm run develop\n')

rightMiddle = await rightBottom.async_split_pane(vertical=False, before=True)
await rightMiddle.async_send_text('cd ~/Develop/pdfme/packages/generator && npm run develop\n')

await leftTop.async_activate()

iterm2.run_until_complete(main)

https://iterm2.com/python-api/examples/broadcast.html のexamplesを参考に作りました。

動作はこんな感じ

Scriptの起動はMenuから or Command +Shift + I でファイル名をタイプすると選択して実行できる。 ちなみに 上記で起動したPaneに対して Command+option+I で Broadcast Input to All Panes in Current Tab をすることで起動中のサーバーを一発で停止することもできる。

CleanShot20220217at144715

  • labelmake.jp
    • labelmake.jp ディレクトリルートに移動
    • labelmake.jp ディレクトリに移動して npm run develop を起動
    • labelmake.jp ディレクトリに移動して npm run functinos:serve を起動
    • labelmake.jp/functions ディレクトリに移動して npm run start を起動

さっき作ったやつを真似して作ればOK

わりといい感じに開発をサクッと始められる環境ができて満足。

iTerm2便利やなー

本日の作業

pdfme

life

labelmake.jp

明日の作業


日記

今日は朝に散歩に行ってスタバで作業して、渋谷でアイフォン変えて、渋谷でそのまま作業して帰った。

パスタがいい感じにできた。

3ヶ月あるあるらしいけど、娘の寝方がかわって寝つきが悪くなって妻が大変そう。 自分もできることをもっとやらないとバランスが崩壊しそうだなと思っているので頑張らねば。