https://github.com/codegangsta/gin
↑
この gin ってやつを使うと
ソースコードの変更検知 + オートリロード が可能になる。
ちなみに、以下の WAF とは別物です。
https://github.com/gin-gonic/gin
https://github.com/codegangsta/gin#supporting-gin-in-your-web-app
↑
ここにあるように、
PORT という環境変数で WAF を起動できるようにする必要があるので、
ソースコードに少しだけ手を入れる必要がある。
以下のようにすればいい。
http://qiita.com/k0kubun/items/64d177ceb9af07dfb78b#ginアプリを書く
アプリケーションは gin を通して起動する。
アプリケーションのルートディレクトリで gin と入力するだけ。
デフォルトは 3000 ポートで起動するが、--port のオプションで 80 などを指定できる。
[gosample]# gin [gin] listening on port 3000 [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode) [GIN-debug] GET /ping --> main.main.func1 (3 handlers) [GIN-debug] Listening and serving HTTP on :3001
ディレクトリ配下のファイルが変更されると、リロードが走る。
とっても便利。
gin を利用すると、
ディレクトリ直下に gin-bin というバイナリができる。
このバイナリは gin が作ったものなので、gitignore で無視するようにした方がいい。
ソースコードが変更されるたびに gin が gin-bin を更新されている。
アプリケーションの bin にあるバイナリを起動してみたら、
ソースコードを編集する前のものだった。
実際に実行されているのは gin-bin なのかな?
あと、オプションが色々あるので、ヘルプを見ると良い。
[gosample]# gin -h NAME: gin - A live reload utility for Go web applications. USAGE: gin [global options] command [command options] [arguments...] VERSION: 0.0.0 COMMANDS: run, r Run the gin proxy in the current working directory env, e Display environment variables set by the .env file help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --laddr value, -l value listening address for the proxy server --port value, -p value port for the proxy server (default: 3000) --appPort value, -a value port for the Go web server (default: 3001) --bin value, -b value name of generated binary file (default: "gin-bin") --path value, -t value Path to watch files from (default: ".") --excludeDir value, -x value Relative directories to exclude --immediate, -i run the server immediately after it's built --godep, -g use godep when building --buildArgs value Additional go build arguments --certFile value TLS Certificate --keyFile value TLS Certificate Key --help, -h show help --version, -v print the version