【ShellScript】vagrant sshするときに同時にvagrant rsync-autoを実行するスクリプトを作成する。
表題のとおり、vagrant sshするときに、localの変更をキャッチしたらその更新をvagrantで適用するために必要な、vagrant rsync-autoをvagrant sshと同時に一つのコマンドで実行したい際にシェルスクリプトを書いたので、そちらを共有したいと思います。
コード
実際に同時に実行するシェルを書く前に、今回の内容ではvagrant sshを行うターミナルのタブもしくはウィンドウとvagrant auto-rsyncを行うタブもしくはウィンドウは別のものを使用する必要があるので、コマンドから新しいwindowを開くことができるためのシェルから記載します。
new_tab.sh
#!/bin/sh
test $# -eq 0 && set -- :
osascript - "$(pwd)" "$@" <<\EOF
on run args
set dir to quoted form of (first item of args)
set cmd_strs to {}
repeat with cmd_str in rest of args
set end of cmd_strs to quoted form of cmd_str
end
set text item delimiters to " "
set cmd to cmd_strs as Unicode text
tell app "Terminal" to do script "cd " & dir & " && " & cmd
end
このスクリプトによって、コマンドラインで次のように実行することで新規タブを開くことができます。
$ ./new_tab
では、本題である「同時にvagrant sshとvagrant auto-rsyncを別々のタブで同時実行をする」スクリプトを書いていきます。
vagrantSSH.sh
#!/bin/bash
./new_tab.sh vagrant rsync-auto
vagrant up
vagrant ssh
このスクリプトを実行することで、同時に実行することができます。
注意点としては、new_tab.shとvagrantSSH.shファイルがVagrantfileのあるディレクトリと同じディレクトリにある必要があることだけ注意してください。
実行する際には、$ ./vagrantSSH
で実行することができます。