インストール
$ go get github.com/constabulary/gb/...
リポジトリからソースコードを取得
git cloneしたあとのディレクトリ構成は以下の通り。
$ tree
.
├── src
│ └── hello
│ └── main.go
└── vendor
└── manifest
main.goの中身は以下の通り。
GoのWAFの1つであるGojiのサンプルを拝借。GitHub - zenazn/goji
$ cat src/hello/main.go
package main
import (
"fmt"
"net/http"
"github.com/zenazn/goji"
"github.com/zenazn/goji/web"
)
func hello(c web.C, w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", c.URLParams["name"])
}
func main() {
goji.Get("/hello/:name", hello)
goji.Serve()
}
manifestファイルの中身は以下の通り。
プロジェクトに追加済みのライブラリが記載されている。
$ cat vendor/manifest
{
"version": 0,
"dependencies": [
{
"importpath": "github.com/goji/param",
"repository": "https://github.com/goji/param",
"revision": "0b4aa9fcd96f890c0ae685fc425d85b80a7bed52",
"branch": "master"
},
{
"importpath": "github.com/zenazn/goji",
"repository": "https://github.com/zenazn/goji",
"revision": "4d7077956293261309684d3cf1af673f773c6819",
"branch": "master"
}
]
}
ライブラリの取得
以下コマンドを実行し、ライブラリを取得。
$ gb vendor restore
ビルド&実行
$ gb build all
binディレクトリ配下に作成されたバイナリファイルを実行。
$ ./bin/hello
2016/09/04 02:45:23.341341 Starting Goji on [::]:8000
ブラウザから以下URLにアクセス
Hello, world!と表示されればOK。
http://[サーバのIPアドレス]:8000/hello/world
(おまけ)共有リポジトリで管理するためのgitignoreファイル
gitignoreとは、gitの管理に含めないファイル/ディレクトリを指定するファイル。
今回は追加したライブラリおよびビルド時に作成されるファイルをgitで管理しないように以下の通り記載。
$ cat .gitignore
# Compiled Object Files, Static and Dynamic libs(Shared Objects)
*.o
*.a
*.so
# Folders
bin/*
vendor/*
# manifestファイルは共有する
!/vendor/manifest
(おまけ)ライブラリを追加するとき
$ gb vendor fetch [パッケージ名]