diff --git a/dist/dist_gen.go b/dist/dist_gen.go new file mode 100644 index 0000000..492344f --- /dev/null +++ b/dist/dist_gen.go @@ -0,0 +1,189842 @@ +package dist + +import ( + "bytes" + "net/http" + "os" + "strings" + "time" +) + +type fileSystem struct { + files map[string]file +} + +func (fs *fileSystem) Open(name string) (http.File, error) { + name = strings.Replace(name, "//", "/", -1) + f, ok := fs.files[name] + if ok { + return newHTTPFile(f, false), nil + } + index := strings.Replace(name+"/index.html", "//", "/", -1) + f, ok = fs.files[index] + if !ok { + return nil, os.ErrNotExist + } + return newHTTPFile(f, true), nil +} + +type file struct { + os.FileInfo + data []byte +} + +type fileInfo struct { + name string + size int64 + mode os.FileMode + modTime time.Time + isDir bool + + files []os.FileInfo +} + +func (f *fileInfo) Name() string { + return f.name +} + +func (f *fileInfo) Size() int64 { + return f.size +} + +func (f *fileInfo) Mode() os.FileMode { + return f.mode +} + +func (f *fileInfo) ModTime() time.Time { + return f.modTime +} + +func (f *fileInfo) IsDir() bool { + return f.isDir +} + +func (f *fileInfo) Readdir(count int) ([]os.FileInfo, error) { + return make([]os.FileInfo, 0), nil +} + +func (f *fileInfo) Sys() interface{} { + return nil +} + +func newHTTPFile(file file, isDir bool) *httpFile { + return &httpFile{ + file: file, + reader: bytes.NewReader(file.data), + isDir: isDir, + } +} + +type httpFile struct { + file + + reader *bytes.Reader + isDir bool +} + +func (f *httpFile) Read(p []byte) (n int, err error) { + return f.reader.Read(p) +} + +func (f *httpFile) Seek(offset int64, whence int) (ret int64, err error) { + return f.reader.Seek(offset, whence) +} + +func (f *httpFile) Stat() (os.FileInfo, error) { + return f, nil +} + +func (f *httpFile) IsDir() bool { + return f.isDir +} + +func (f *httpFile) Readdir(count int) ([]os.FileInfo, error) { + return make([]os.FileInfo, 0), nil +} + +func (f *httpFile) Close() error { + return nil +} + +// New returns an embedded http.FileSystem +func New() http.FileSystem { + return &fileSystem{ + files: files, + } +} + +// Lookup returns the file at the specified path +func Lookup(path string) ([]byte, error) { + f, ok := files[path] + if !ok { + return nil, os.ErrNotExist + } + return f.data, nil +} + +// MustLookup returns the file at the specified path +// and panics if the file is not found. +func MustLookup(path string) []byte { + d, err := Lookup(path) + if err != nil { + panic(err) + } + return d +} + +// Index of all files +var files = map[string]file{ + "/index.html": { + data: file0, + FileInfo: &fileInfo{ + name: "index.html", + size: 1718, + modTime: time.Unix(1586342729, 0), + }, + }, + "/css/chunk-0da11448.24c1955e.css": { + data: file1, + FileInfo: &fileInfo{ + name: "chunk-0da11448.24c1955e.css", + size: 26748, + modTime: time.Unix(1586342729, 0), + }, + }, + "/css/chunk-a75dd492.e6a0a51b.css": { + data: file2, + FileInfo: &fileInfo{ + name: "chunk-a75dd492.e6a0a51b.css", + size: 18815, + modTime: time.Unix(1586342729, 0), + }, + }, + "/css/chunk-e31f1038.99b40db0.css": { + data: file3, + FileInfo: &fileInfo{ + name: "chunk-e31f1038.99b40db0.css", + size: 30347, + modTime: time.Unix(1586342729, 0), + }, + }, + "/css/chunk-0b913f22.6143329c.css": { + data: file4, + FileInfo: &fileInfo{ + name: "chunk-0b913f22.6143329c.css", + size: 12887, + modTime: time.Unix(1586342729, 0), + }, + }, + "/css/chunk-1c14426d.c2d39f60.css": { + data: file5, + FileInfo: &fileInfo{ + name: "chunk-1c14426d.c2d39f60.css", + size: 3108, + modTime: time.Unix(1586342729, 0), + }, + }, + "/css/chunk-vendors.ec3c58e4.css": { + data: file6, + FileInfo: &fileInfo{ + name: "chunk-vendors.ec3c58e4.css", + size: 507526, + modTime: time.Unix(1586342729, 0), + }, + }, + "/css/chunk-73973304.099d35a1.css": { + data: file7, + FileInfo: &fileInfo{ + name: "chunk-73973304.099d35a1.css", + size: 27830, + modTime: time.Unix(1586342729, 0), + }, + }, + "/css/app.80160b0e.css": { + data: file8, + FileInfo: &fileInfo{ + name: "app.80160b0e.css", + size: 0, + modTime: time.Unix(1586342729, 0), + }, + }, + "/js/chunk-0da11448.1a935df1.js": { + data: file9, + FileInfo: &fileInfo{ + name: "chunk-0da11448.1a935df1.js", + size: 27028, + modTime: time.Unix(1586342729, 0), + }, + }, + "/js/chunk-e31f1038.6c8765d9.js": { + data: file10, + FileInfo: &fileInfo{ + name: "chunk-e31f1038.6c8765d9.js", + size: 7422, + modTime: time.Unix(1586342729, 0), + }, + }, + "/js/chunk-1c14426d.2d881e0a.js": { + data: file11, + FileInfo: &fileInfo{ + name: "chunk-1c14426d.2d881e0a.js", + size: 5464, + modTime: time.Unix(1586342729, 0), + }, + }, + "/js/chunk-0b913f22.5d3afd33.js": { + data: file12, + FileInfo: &fileInfo{ + name: "chunk-0b913f22.5d3afd33.js", + size: 22152, + modTime: time.Unix(1586342729, 0), + }, + }, + "/js/app.883cdce1.js": { + data: file13, + FileInfo: &fileInfo{ + name: "app.883cdce1.js", + size: 9965, + modTime: time.Unix(1586342729, 0), + }, + }, + "/js/chunk-a75dd492.25d0d6e2.js": { + data: file14, + FileInfo: &fileInfo{ + name: "chunk-a75dd492.25d0d6e2.js", + size: 10573, + modTime: time.Unix(1586342729, 0), + }, + }, + "/js/chunk-73973304.9dcd2495.js": { + data: file15, + FileInfo: &fileInfo{ + name: "chunk-73973304.9dcd2495.js", + size: 7873, + modTime: time.Unix(1586342729, 0), + }, + }, + "/js/chunk-vendors.e2bb464d.js": { + data: file16, + FileInfo: &fileInfo{ + name: "chunk-vendors.e2bb464d.js", + size: 257425, + modTime: time.Unix(1586342729, 0), + }, + }, + "/fonts/materialdesignicons-webfont.f81583fc.eot": { + data: file17, + FileInfo: &fileInfo{ + name: "materialdesignicons-webfont.f81583fc.eot", + size: 808664, + modTime: time.Unix(1586342729, 0), + }, + }, + "/fonts/materialdesignicons-webfont.d6e3eba9.woff": { + data: file18, + FileInfo: &fileInfo{ + name: "materialdesignicons-webfont.d6e3eba9.woff", + size: 386840, + modTime: time.Unix(1586342729, 0), + }, + }, + "/fonts/materialdesignicons-webfont.927457ed.woff2": { + data: file19, + FileInfo: &fileInfo{ + name: "materialdesignicons-webfont.927457ed.woff2", + size: 269404, + modTime: time.Unix(1586342729, 0), + }, + }, + "/fonts/materialdesignicons-webfont.1618c77b.ttf": { + data: file20, + FileInfo: &fileInfo{ + name: "materialdesignicons-webfont.1618c77b.ttf", + size: 808444, + modTime: time.Unix(1586342729, 0), + }, + }, +} + +// +// embedded files. +// + +// /index.html +var file0 = []byte(`