LoginSignup
0
0

More than 3 years have passed since last update.

GoのEchoを自動リフレッシュしてくれるスクリプト

Posted at

はじめに

GoのEchoを少し触っていて、Flaskのように変更適用時に自動でリフレッシュしてくれる機能があれば便利だなと思いました。特に、ソースコードに影響を及ぼさずに外部から環境を構築することが、ミスを減らすために重要だと感じ、シェルスクリプトを書きました。コイツは、カレント以下の変更を検知するようにしてあるので、./module/等の変更にも対応してくれます。

まあまあ便利なものができたなと思っているので、よかったら使ってみてください。

実行環境

fswatchを使います。

# Mac
$ brew install fswatch
# Ubuntu
$ sudo apt install fswatch

シェルスクリプト

Makefilemake runを設定していれば、当スクリプトを同一ディレクトリに配置してそのまま実行すると良いです。

autoreloader.sh
#!/bin/bash

function cleanup()
{
    app_pid=`/bin/ps -fu $USER| grep "make run" | grep -v "grep" | awk '{print $2}'`
    if [[ ${#app_pid} != 0 ]]
    then
        kill ${app_pid}
    fi
}
trap cleanup EXIT

while :;
do
    make
    make run &
    app_pid=`/bin/ps -fu $USER| grep "make run" | grep -v "grep" | awk '{print $2}'`
    fswatch_result=$(fswatch -1 .)
    kill ${app_pid}
done
0
0
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
0
0