LoginSignup
7
7

More than 3 years have passed since last update.

シェルスクリプトとアップルスクリプトで自動化

Last updated at Posted at 2019-08-06

いつもRailsとReactで開発しています。
エディターはVimでiTerm2です。OSはMacOS Mojaveです。

毎日複数のプロジェクトを切り替えるのが面倒くさかったので、自動化させました。

やりたいことは、ターミナルを立ち上げた時に、vリターンするだけで、バババッとローカル開発環境が立ち上がってくれるというものです。

具体的には、pumaとwebpack-dev-serverとvimがそれぞれ3つのタブで開いてくれるというものです。毎回同じ操作をしていたので、とても便利です。

ホームディレクトリでvim vでv(victoryのv)という新規ファイルを作成しその中に下のコードをコピーします。


#!/bin/bash

# ここはご自身のアプリの場所を指定してください。
cd /Users/hikaru/rails6-project
mysql.server start

osascript <<EOF
tell app "Terminal"
  tell application "System Events" to keystroke "t" using command down
    tell application "System Events"
      delay 0.5
      keystroke "bin/webpack-dev-server"
      delay 0.5
      keystroke return
    end tell
  end tell
EOF

osascript <<EOF
tell app "Terminal"
  tell application "System Events" to keystroke "t" using command down
    tell application "System Events"
      delay 0.5
      keystroke "vim"
      delay 0.5
      keystroke return
    end tell
  end tell
EOF

rails s  

注意点:keystrokeで、"bundle exec rails s"とか打つと、スペースが日本語IMEに変換されて、その後の文字が変になります。なので、スペースを意味するkey code 49を入れてやります。

      keystroke "bundle"
      key code 49
      keystroke "exec"
      key code 49
      keystroke "rails"
      key code 49
      keystroke "s"

実行権限をつけてやる。

$ chmod 777 v

普通に実行するとカレントディレクトリは変化しない.
source をつけるとカレントディレクトリはそのままになります。
そこで、初期設定ファイルにエイリアスをつける。
これは、作ったファイルの数だけ設定する。x y zと増えたらその分aliasも作ります。

zshrc/.bashrc

alias v='source v'

実行する!

$ . v

(ピリオドとvの間には半角スペースが必要)
この、ドットすら打つの面倒くさいので、/user/local/bin に作ったシェルスクリプトを入れましょう。パスが通っているはずなので、v エンターで、実行できるようになります。

mv ~/v /usr/local/bin/v

以上です。
シェルスクリプトとアップルスクリプトの組み合わせで色々自動化できそうです。
bundleとかgit pullとかyarnとか

追記20200206
Catarinaからbashじゃなくて、zshになったので、シェルスクリプトを書くときは、#!/bin/bash ではなく、#!/bin/zshなのでご注意。
. v で起動ではなく、./v で起動になります。/user/local/bin に入れちゃえばvリターンするだけで関係ないですけど。。念のため。

お読みいただきありがとうございました。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7