353 lines
11 KiB
Go
353 lines
11 KiB
Go
// Code generated by "esc -o=esc.go -pkg=static -ignore=^(static|esc)\.go$ -modtime=0 -private ."; DO NOT EDIT.
|
|
|
|
package static
|
|
|
|
import (
|
|
"bytes"
|
|
"compress/gzip"
|
|
"encoding/base64"
|
|
"fmt"
|
|
"io"
|
|
"io/ioutil"
|
|
"net/http"
|
|
"os"
|
|
"path"
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
type _escLocalFS struct{}
|
|
|
|
var _escLocal _escLocalFS
|
|
|
|
type _escStaticFS struct{}
|
|
|
|
var _escStatic _escStaticFS
|
|
|
|
type _escDirectory struct {
|
|
fs http.FileSystem
|
|
name string
|
|
}
|
|
|
|
type _escFile struct {
|
|
compressed string
|
|
size int64
|
|
modtime int64
|
|
local string
|
|
isDir bool
|
|
|
|
once sync.Once
|
|
data []byte
|
|
name string
|
|
}
|
|
|
|
func (_escLocalFS) Open(name string) (http.File, error) {
|
|
f, present := _escData[path.Clean(name)]
|
|
if !present {
|
|
return nil, os.ErrNotExist
|
|
}
|
|
return os.Open(f.local)
|
|
}
|
|
|
|
func (_escStaticFS) prepare(name string) (*_escFile, error) {
|
|
f, present := _escData[path.Clean(name)]
|
|
if !present {
|
|
return nil, os.ErrNotExist
|
|
}
|
|
var err error
|
|
f.once.Do(func() {
|
|
f.name = path.Base(name)
|
|
if f.size == 0 {
|
|
return
|
|
}
|
|
var gr *gzip.Reader
|
|
b64 := base64.NewDecoder(base64.StdEncoding, bytes.NewBufferString(f.compressed))
|
|
gr, err = gzip.NewReader(b64)
|
|
if err != nil {
|
|
return
|
|
}
|
|
f.data, err = ioutil.ReadAll(gr)
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return f, nil
|
|
}
|
|
|
|
func (fs _escStaticFS) Open(name string) (http.File, error) {
|
|
f, err := fs.prepare(name)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return f.File()
|
|
}
|
|
|
|
func (dir _escDirectory) Open(name string) (http.File, error) {
|
|
return dir.fs.Open(dir.name + name)
|
|
}
|
|
|
|
func (f *_escFile) File() (http.File, error) {
|
|
type httpFile struct {
|
|
*bytes.Reader
|
|
*_escFile
|
|
}
|
|
return &httpFile{
|
|
Reader: bytes.NewReader(f.data),
|
|
_escFile: f,
|
|
}, nil
|
|
}
|
|
|
|
func (f *_escFile) Close() error {
|
|
return nil
|
|
}
|
|
|
|
func (f *_escFile) Readdir(count int) ([]os.FileInfo, error) {
|
|
if !f.isDir {
|
|
return nil, fmt.Errorf(" escFile.Readdir: '%s' is not directory", f.name)
|
|
}
|
|
|
|
fis, ok := _escDirs[f.local]
|
|
if !ok {
|
|
return nil, fmt.Errorf(" escFile.Readdir: '%s' is directory, but we have no info about content of this dir, local=%s", f.name, f.local)
|
|
}
|
|
limit := count
|
|
if count <= 0 || limit > len(fis) {
|
|
limit = len(fis)
|
|
}
|
|
|
|
if len(fis) == 0 && count > 0 {
|
|
return nil, io.EOF
|
|
}
|
|
|
|
return fis[0:limit], nil
|
|
}
|
|
|
|
func (f *_escFile) Stat() (os.FileInfo, error) {
|
|
return f, nil
|
|
}
|
|
|
|
func (f *_escFile) Name() string {
|
|
return f.name
|
|
}
|
|
|
|
func (f *_escFile) Size() int64 {
|
|
return f.size
|
|
}
|
|
|
|
func (f *_escFile) Mode() os.FileMode {
|
|
return 0
|
|
}
|
|
|
|
func (f *_escFile) ModTime() time.Time {
|
|
return time.Unix(f.modtime, 0)
|
|
}
|
|
|
|
func (f *_escFile) IsDir() bool {
|
|
return f.isDir
|
|
}
|
|
|
|
func (f *_escFile) Sys() interface{} {
|
|
return f
|
|
}
|
|
|
|
// _escFS returns a http.Filesystem for the embedded assets. If useLocal is true,
|
|
// the filesystem's contents are instead used.
|
|
func _escFS(useLocal bool) http.FileSystem {
|
|
if useLocal {
|
|
return _escLocal
|
|
}
|
|
return _escStatic
|
|
}
|
|
|
|
// _escDir returns a http.Filesystem for the embedded assets on a given prefix dir.
|
|
// If useLocal is true, the filesystem's contents are instead used.
|
|
func _escDir(useLocal bool, name string) http.FileSystem {
|
|
if useLocal {
|
|
return _escDirectory{fs: _escLocal, name: name}
|
|
}
|
|
return _escDirectory{fs: _escStatic, name: name}
|
|
}
|
|
|
|
// _escFSByte returns the named file from the embedded assets. If useLocal is
|
|
// true, the filesystem's contents are instead used.
|
|
func _escFSByte(useLocal bool, name string) ([]byte, error) {
|
|
if useLocal {
|
|
f, err := _escLocal.Open(name)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
b, err := ioutil.ReadAll(f)
|
|
_ = f.Close()
|
|
return b, err
|
|
}
|
|
f, err := _escStatic.prepare(name)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return f.data, nil
|
|
}
|
|
|
|
// _escFSMustByte is the same as _escFSByte, but panics if name is not present.
|
|
func _escFSMustByte(useLocal bool, name string) []byte {
|
|
b, err := _escFSByte(useLocal, name)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return b
|
|
}
|
|
|
|
// _escFSString is the string version of _escFSByte.
|
|
func _escFSString(useLocal bool, name string) (string, error) {
|
|
b, err := _escFSByte(useLocal, name)
|
|
return string(b), err
|
|
}
|
|
|
|
// _escFSMustString is the string version of _escFSMustByte.
|
|
func _escFSMustString(useLocal bool, name string) string {
|
|
return string(_escFSMustByte(useLocal, name))
|
|
}
|
|
|
|
var _escData = map[string]*_escFile{
|
|
|
|
"/codenames/README.md": {
|
|
name: "README.md",
|
|
local: "codenames/README.md",
|
|
size: 96,
|
|
modtime: 0,
|
|
compressed: `
|
|
H4sIAAAAAAAC/xTL0QnCQAwG4HenyAJtsIJg53CBePf3WmzMkZxkfXGA77kjQNtxIkgcFPb1gkqbm660
|
|
j9FjZc7M+WXitYmiAe+5mPJfdWng6+2+PBYuVvERRUxpXqfziHH5BQAA//+Xdl6cYAAAAA==
|
|
`,
|
|
},
|
|
|
|
"/codenames/default.txt": {
|
|
name: "default.txt",
|
|
local: "codenames/default.txt",
|
|
size: 2482,
|
|
modtime: 0,
|
|
compressed: `
|
|
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
|
|
ruqOPmwmV9Psp5eSy/a/AAAA///SQbudsgkAAA==
|
|
`,
|
|
},
|
|
|
|
"/codenames/duet.txt": {
|
|
name: "duet.txt",
|
|
local: "codenames/duet.txt",
|
|
size: 2634,
|
|
modtime: 0,
|
|
compressed: `
|
|
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
|
|
h4maTUoKAAA=
|
|
`,
|
|
},
|
|
|
|
"/codenames/undercover.txt": {
|
|
name: "undercover.txt",
|
|
local: "codenames/undercover.txt",
|
|
size: 2447,
|
|
modtime: 0,
|
|
compressed: `
|
|
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
|
|
O6UajwkAAA==
|
|
`,
|
|
},
|
|
|
|
"/": {
|
|
name: "/",
|
|
local: `.`,
|
|
isDir: true,
|
|
},
|
|
|
|
"/codenames": {
|
|
name: "codenames",
|
|
local: `codenames`,
|
|
isDir: true,
|
|
},
|
|
}
|
|
|
|
var _escDirs = map[string][]os.FileInfo{
|
|
|
|
".": {
|
|
_escData["/codenames"],
|
|
},
|
|
|
|
"codenames": {
|
|
_escData["/codenames/README.md"],
|
|
_escData["/codenames/default.txt"],
|
|
_escData["/codenames/duet.txt"],
|
|
_escData["/codenames/undercover.txt"],
|
|
},
|
|
}
|