トミールの技術系日記

忍たまはじめました

go-assets 使い方

週末やったルー語変換のgo版(でーーっかいけどシングルバイナリな lougo)で使ったやつ。あんまし日本語の情報でてなかったのと、つい今ほど作成されるコードが go vet や goimports で指摘されないような pr mergeされたので記念にかいとく

go-assetsとは!

go-bindataと同じアプローチだけど、ファイルの内容そのままじゃなくて http.FileSystem interfaceなラッパーにくるんだgoコードを作ってくれる。なのでファイルを受け取るのを期待したfuncにそのまま渡せる。

ファイル群のpackの仕方

ライブラリ go-assets の方はまあ最悪見なくていいので、コマンドラインツール go-assets-builderを高速でgetします

go get -u github.com/jessevdk/go-assets-builder

例: data/以下のファイル群を、package hoge な assets.go 作成

go-assets-builder --package=hoge data/ > assets.go

できたファイル見ると一目瞭然!

goマニアはgo:generateコメントの機能でファイルを作成するとオシャレかもしれませんが、マニアじゃない場合はふつうにmakefileにでも並べておくとよいかと

使う方

デフォルトだと Assets() というので呼べるので(--valiable 引数で変更可能)

使う方

f, err := Assets.Open("/data/fileeeee.txt")

とか。

くわしくはこちらにものってございます。

みんなのGo言語【現場で使える実践テクニック】

みんなのGo言語【現場で使える実践テクニック】