aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/shurcooL/vfsgen
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/shurcooL/vfsgen')
-rw-r--r--vendor/github.com/shurcooL/vfsgen/LICENSE21
-rw-r--r--vendor/github.com/shurcooL/vfsgen/README.md31
-rw-r--r--vendor/github.com/shurcooL/vfsgen/generator.go7
3 files changed, 51 insertions, 8 deletions
diff --git a/vendor/github.com/shurcooL/vfsgen/LICENSE b/vendor/github.com/shurcooL/vfsgen/LICENSE
new file mode 100644
index 00000000..c35c17af
--- /dev/null
+++ b/vendor/github.com/shurcooL/vfsgen/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2015 Dmitri Shuralyov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
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)
diff --git a/vendor/github.com/shurcooL/vfsgen/generator.go b/vendor/github.com/shurcooL/vfsgen/generator.go
index a95c81cb..5782693e 100644
--- a/vendor/github.com/shurcooL/vfsgen/generator.go
+++ b/vendor/github.com/shurcooL/vfsgen/generator.go
@@ -7,7 +7,6 @@ import (
"fmt"
"io"
"io/ioutil"
- "log"
"net/http"
"os"
pathpkg "path"
@@ -83,8 +82,8 @@ type dirInfo struct {
func findAndWriteFiles(buf *bytes.Buffer, fs http.FileSystem, toc *toc) error {
walkFn := func(path string, fi os.FileInfo, r io.ReadSeeker, err error) error {
if err != nil {
- log.Printf("can't stat file %q: %v\n", path, err)
- return nil
+ // Consider all errors reading the input filesystem as fatal.
+ return err
}
switch fi.IsDir() {
@@ -301,7 +300,7 @@ func (fs vfsgen۰FS) Open(path string) (http.File, error) {
}
return &vfsgen۰CompressedFile{
vfsgen۰CompressedFileInfo: f,
- gr: gr,
+ gr: gr,
}, nil{{end}}{{if .HasFile}}
case *vfsgen۰FileInfo:
return &vfsgen۰File{