diff options
Diffstat (limited to 'vendor/github.com/shurcooL/vfsgen/README.md')
-rw-r--r-- | vendor/github.com/shurcooL/vfsgen/README.md | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/vendor/github.com/shurcooL/vfsgen/README.md b/vendor/github.com/shurcooL/vfsgen/README.md index a7781cb1..659a0a03 100644 --- a/vendor/github.com/shurcooL/vfsgen/README.md +++ b/vendor/github.com/shurcooL/vfsgen/README.md @@ -26,22 +26,43 @@ go get -u github.com/shurcooL/vfsgen Usage ----- -This code will generate an assets_vfsdata.go file with `var assets http.FileSystem = ...` that statically implements the contents of "assets" directory. +Package `vfsgen` is a Go code generator library. It has a `Generate` function that takes an input filesystem (as a [`http.FileSystem`](https://godoc.org/net/http#FileSystem) type), and generates a Go code file that statically implements the contents of the input filesystem. + +For example, we can use [`http.Dir`](https://godoc.org/net/http#Dir) as a `http.FileSystem` implementation that uses the contents of the `/path/to/assets` directory: ```Go -var fs http.FileSystem = http.Dir("assets") +var fs http.FileSystem = http.Dir("/path/to/assets") +``` +Now, when you execute the following code: + +```Go err := vfsgen.Generate(fs, vfsgen.Options{}) if err != nil { log.Fatalln(err) } ``` +An assets_vfsdata.go file will be generated in the current directory: + +```Go +// Code generated by vfsgen; DO NOT EDIT. + +package main + +import ... + +// assets statically implements the virtual filesystem provided to vfsgen.Generate. +var assets http.FileSystem = ... +``` + Then, in your program, you can use `assets` as any other [`http.FileSystem`](https://godoc.org/net/http#FileSystem), for example: ```Go file, err := assets.Open("/some/file.txt") -if err != nil { ... } +if err != nil { + return err +} defer file.Close() ``` @@ -49,6 +70,8 @@ defer file.Close() http.Handle("/assets/", http.FileServer(assets)) ``` +`vfsgen` can be more useful when combined with build tags and go generate directives. This is described below. + ### `go generate` Usage vfsgen is great to use with go generate directives. The code invoking `vfsgen.Generate` can go in an assets_generate.go file, which can then be invoked via "//go:generate go run assets_generate.go". The input virtual filesystem can read directly from disk, or it can be more involved. @@ -175,4 +198,4 @@ This package was originally based on the excellent work by [@jteeuwen](https://g License ------- -- [MIT License](https://opensource.org/licenses/mit-license.php) +- [MIT License](LICENSE) |