diff options
author | Niall Sheridan <nsheridan@gmail.com> | 2018-08-01 00:37:11 +0100 |
---|---|---|
committer | Niall Sheridan <nsheridan@gmail.com> | 2018-08-01 00:37:11 +0100 |
commit | e2b4c3882762406fd3da16f5865cfc3e36e048b5 (patch) | |
tree | 4554004f44fe69a759d37191b8a6236ec0f2c90e /vendor/github.com/gobuffalo/packr/packr.go | |
parent | 925bc7eb676e25341e30d64da4d12c0e93102cdf (diff) |
Migrate from esc to packr for static files
Diffstat (limited to 'vendor/github.com/gobuffalo/packr/packr.go')
-rw-r--r-- | vendor/github.com/gobuffalo/packr/packr.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/vendor/github.com/gobuffalo/packr/packr.go b/vendor/github.com/gobuffalo/packr/packr.go new file mode 100644 index 0000000..d282994 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/packr.go @@ -0,0 +1,55 @@ +package packr + +import ( + "bytes" + "compress/gzip" + "encoding/json" + "sync" +) + +var gil = &sync.Mutex{} +var data = map[string]map[string][]byte{} + +// PackBytes packs bytes for a file into a box. +func PackBytes(box string, name string, bb []byte) { + gil.Lock() + defer gil.Unlock() + if _, ok := data[box]; !ok { + data[box] = map[string][]byte{} + } + data[box][name] = bb +} + +// PackBytesGzip packets the gzipped compressed bytes into a box. +func PackBytesGzip(box string, name string, bb []byte) error { + var buf bytes.Buffer + w := gzip.NewWriter(&buf) + _, err := w.Write(bb) + if err != nil { + return err + } + err = w.Close() + if err != nil { + return err + } + PackBytes(box, name, buf.Bytes()) + return nil +} + +// PackJSONBytes packs JSON encoded bytes for a file into a box. +func PackJSONBytes(box string, name string, jbb string) error { + var bb []byte + err := json.Unmarshal([]byte(jbb), &bb) + if err != nil { + return err + } + PackBytes(box, name, bb) + return nil +} + +// UnpackBytes unpacks bytes for specific box. +func UnpackBytes(box string) { + gil.Lock() + defer gil.Unlock() + delete(data, box) +} |