|
|
|
// Code generated by go-bindata.
|
|
|
|
// sources:
|
|
|
|
// dist/app.css
|
|
|
|
// dist/index.html
|
|
|
|
// dist/main.js
|
|
|
|
// DO NOT EDIT!
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"compress/gzip"
|
|
|
|
"fmt"
|
|
|
|
"github.com/elazarl/go-bindata-assetfs"
|
|
|
|
"io"
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func bindataRead(data []byte, name string) ([]byte, error) {
|
|
|
|
gz, err := gzip.NewReader(bytes.NewBuffer(data))
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("Read %q: %v", name, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
var buf bytes.Buffer
|
|
|
|
_, err = io.Copy(&buf, gz)
|
|
|
|
clErr := gz.Close()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("Read %q: %v", name, err)
|
|
|
|
}
|
|
|
|
if clErr != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return buf.Bytes(), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type asset struct {
|
|
|
|
bytes []byte
|
|
|
|
info os.FileInfo
|
|
|
|
}
|
|
|
|
|
|
|
|
type bindataFileInfo struct {
|
|
|
|
name string
|
|
|
|
size int64
|
|
|
|
mode os.FileMode
|
|
|
|
modTime time.Time
|
|
|
|
}
|
|
|
|
|
|
|
|
func (fi bindataFileInfo) Name() string {
|
|
|
|
return fi.name
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) Size() int64 {
|
|
|
|
return fi.size
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) Mode() os.FileMode {
|
|
|
|
return fi.mode
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) ModTime() time.Time {
|
|
|
|
return fi.modTime
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) IsDir() bool {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) Sys() interface{} {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _distAppCSS = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x55\x41\x6f\xdb\x3c\x0c\xbd\xe7\x57\xe8\xeb\x87\x01\xed\x10\x05\x4e\x0a\x0f\x83\x73\xda\x6d\xe7\x9d\x76\x95\x2d\x3a\x12\x22\x8b\x82\x24\x27\x69\x8b\xfd\xf7\xd1\xb2\x9d\xda\x69\x3a\x34\x40\x1d\xc4\xb6\xa4\xc7\xc7\x27\x92\xa2\x8b\x1a\xab\x36\xb0\x17\x6c\xa3\xd1\x16\x0a\x8b\x16\xd8\x7f\xba\x71\xe8\xa3\xb0\x71\xfb\x67\x51\x14\xbc\xc1\x67\x9e\x70\x5c\x5b\x0b\x9e\xbd\x94\xe8\x25\xf8\x22\x9b\x23\x17\x5f\xd9\xcb\x82\xd1\xd5\x08\xbf\xd3\xb6\x60\xd9\x96\x39\x21\xa5\xb6\xbb\xee\x3d\x2d\xd5\x68\x23\xaf\x45\xa3\xcd\x53\xc1\xee\x7e\x61\x89\x11\xef\x96\xec\x27\x98\x03\x44\x5d\x89\x25\xfb\xe1\xb5\x30\x4b\x16\x84\x0d\x3c\x80\xd7\xf5\x76\x41\xd4\xab\x8a\x0c\xc1\xc6\xc1\xc3\x99\x76\x93\xb9\x53\x0f\x50\xd8\x00\x17\xce\x81\xf0\x03\x08\x9d\xa8\x74\x24\x3f\xd9\x2a\x5b\xf7\xee\xa3\x27\x5a\x1d\x35\x92\xba\x61\x99\xad\x1e\x03\x03\x11\x80\x36\xf7\x86\x69\xfa\xce\x45\x15\xf5\x01\x2e\xc9\xd7\xbd\x11\x49\x3d\x80\x0f\x9f\xa3\x60\x4e\x76\x31\xfc\x98\x0e\x03\xe2\x63\x98\xf9\xe8\x1d\xf2\x1b\xf5\x1f\x34\x41\xd0\x07\xb6\x0a\x4e\xf8\x7d\x57\x59\x03\x63\xad\x8d\x29\x58\x57\x65\x3d\x5d\x88\x1e\xf7\x50\xd0\x13\xc0\x94\xa6\x9d\x4d\xf3\xa3\x96\x51\x91\xec\x55\x3e\x66\x79\xe7\x85\x53\x9f\xc4\x55\x09\x2f\x07\x2a\xa9\x83\x33\x82\x36\x5a\x1a\xac\xf6\xbd\x1d\x52\x54\x6a\x83\xc7\x82\x29\x2d\x25\xd8\x7e\xd6\xe1\xb8\x7b\x0f\x46\x74\xb1\xea\xe7\xf9\x11\xca\xbd\x8e\xdc\x51\x28\x1d\xa4\x20\x92\xb3\x2c\x4b\xf5\xc9\x26\xd7\x55\xc0\x28\xa7\x50\x9d\xd7\x41\x54\xd5\xfa\x80\xbe\x60\x0d\x5e\x3a\x99\x26\x61\x1d\xe6\xfc\xd7\xd6\x66\x76\x35\xfa\x86\x87\xf8\x64\xc8\xbf\xf3\x90\xd2\xcf\x1f\xe5\x15\x96\x77\x91\x09\x5a\x8a\x6a\xbf\xf3\xd8\x5a\xc9\x2b\x34\x9d\xd0\xff\xeb\x3a\xdf\xe4\x9b\x9e\x69\x98\x3b\x2a\x1d\x61\xcb\xd2\x0e\xb5\x95\x70\xe2\x93\xb0\x8f\x76\x79\x9e\x6f\x2f\x10\x4b\x36\x85\x4f\x73\x15\xd1\x51\x41\x8e\x61\xf5\x7a\xa7\xe2\x64\xfc\xcc\x93\x59\x17\xda\x7e\x42\x41\x8f\x58\x7f\x3f\x63\x5e\x73\xa8\xad\xa2\x16\x13\x87\xd2\xc6\xb6\x52\xe9\x00\x74\x4b\xaf\x75\xd5\x77\x3b\xee\x85\xd4\x6d\xa0\x96\x33\xd2\x9c\x63\x44\x25\x57\x09\x03\xbf\xef\xd7\x0f\x17\x2b\x1c\x49\x5f\xd7\x0a\x93\x4c\x96\x67\x5f\x5e\x95\xbe\x8d\x9f\xdf\x95\xf7\x9b\x3c\x5f\xb2\xf1\xf6\x30\x4f\x5f\x89\x27\x1e\x94\x90\x5d\x4d\x92\x0a\xf6\x48\xff\xee\x49\x94\x9d\xad\xb8\xcf\x96\xe9\xb7\x1a\x75\xa4\xce\x7d\xb3\xd5\x4d\x06\xa9\x61\x82\x90\xe7\xaa\xed\x9b\x3f\x4f\x59\x5a\xe7\xe3\x66\xdf\x64\x7a\xb0\x51\x9b\x7f\x9c\xc0\xf4\xb1\x08\xfa\x19\xd2\xb1\x85\x66\x08\x2e\x9c\x22\x17\x46\xef\x28\xac\x15\x7d\x12\xc0\x5f\xd6\x0e\x53\xdf\x6e\x66\x9d\xca\xce\xcf\x39\xba\xee\xeb\x6f\x00\x00\x00\xff\xff\xa1\x96\xf3\xc1\x35\x07\x00\x00")
|
|
|
|
|
|
|
|
func distAppCSSBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_distAppCSS,
|
|
|
|
"dist/app.css",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func distAppCSS() (*asset, error) {
|
|
|
|
bytes, err := distAppCSSBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
info := bindataFileInfo{name: "dist/app.css", size: 1845, mode: os.FileMode(420), modTime: time.Unix(1443253091, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _distIndexHTML = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x51\xbd\x4e\xf4\x30\x10\xec\xbf\xa7\xf0\x67\x4a\x84\x8d\x90\xa0\x38\x39\x47\x41\x45\x71\x0d\x6f\xe0\xd8\x9b\x64\xb9\x8d\x37\xb2\x17\x74\x79\x7b\x62\xac\x93\x4e\x5c\x03\x4a\x91\xd5\x68\x34\x3f\x1e\xf7\x3f\x72\x90\x75\x01\x35\xc9\x4c\xfb\x7f\xae\xfd\x94\x72\x13\xf8\x58\x8f\xed\x14\x14\x82\xfd\x01\x13\xb2\x7a\xe1\x24\x99\x89\x20\x3b\xdb\xf0\xc6\x21\x4c\x47\x35\x65\x18\x3a\x3d\x89\x2c\x65\x67\xed\xb0\x51\x8b\x19\x99\x47\x02\xbf\x60\x31\x81\x67\x1b\x4a\x79\x1e\xfc\x8c\xb4\x76\x6f\xdc\xb3\xb0\x56\x19\xa8\xd3\x45\x56\x82\x32\x01\x88\x56\x35\x4f\xa7\x05\x4e\x52\xe9\xfa\x8f\x0e\x18\x38\x9d\x2d\x0e\x5e\x20\xa3\xa7\xdb\xd7\x0d\x2c\xd7\x56\x97\xd2\x57\x31\x9a\x97\xb5\x21\x26\xf3\x5e\x22\x10\x7e\x66\x93\x40\xec\x40\x70\xea\xf9\x34\x66\x8c\xf6\xc9\x3c\x98\xfb\x4b\xc4\xcc\x98\x4c\x8d\xfd\xb3\x86\xba\xee\xe1\x97\xa5\x51\x7f\xf3\x04\xce\x9e\x27\x71\x3d\xc7\x55\x7d\xd3\x3b\xdd\xfb\x70\x1c\x33\x7f\xa4\x78\x17\x98\x38\xef\xd4\xcd\xf0\x58\xbf\x73\xb9\x12\x32\x2e\xa2\x4a\x0e\x9d\x9e\x3d\xd6\x2e\x7a\xef\x6c\x83\x9b\x70\xd5\xdb\xb6\xb7\x6d\xfc\xaf\x00\x00\x00\xff\xff\xde\x72\x3f\xd6\x14\x02\x00\x00")
|
|
|
|
|
|
|
|
func distIndexHTMLBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_distIndexHTML,
|
|
|
|
"dist/index.html",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func distIndexHTML() (*asset, error) {
|
|
|
|
bytes, err := distIndexHTMLBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
info := bindataFileInfo{name: "dist/index.html", size: 532, mode: os.FileMode(420), modTime: time.Unix(1443253091, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _distMainJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\xbd\xfb\x76\x1b\x37\x92\x38\xfc\xf7\xf8\x29\xda\xdc\x99\xa8\x69\x51\x14\x49\xdd\xa9\x38\x3e\x1e\x3b\x99\x78\xc7\x76\xf2\xb3\x9c\xb9\xac\xac\xd1\x69\x92\x2d\xaa\x2d\x92\xcd\x74\x93\xba\xd8\xd1\x9e\xdd\x73\xbe\x57\xfa\xbd\xc0\xf7\x00\xdf\xbc\xd2\x57\x55\xb8\x15\xd0\xe8\x26\x65\x3b\x4e\x26\xc3\xec\x8e\xcc\x06\x0a\x85\x42\x01\x28\x14\x0a\x85\x42\x78\x36\x9f\xf4\x67\x49\x3a\x09\xe2\x70\xd6\x98\x34\xb2\xfa\x7b\x9d\x92\x87\x69\x63\x5e\x7f\x9f\x9c\x85\xf7\x27\xc7\xe9\x89\xf8\x35\xa3\x5f\x97\x51\x16\x44\x0f\x67\x37\xd3\x38\x3d\x0b\xb2\xf8\xc7\x79\x92\xc5\x0f\x1f\xd6\x54\xd1\xda\x17\x5f\xc8\xc4\x43\x2c\x33\xff\xe2\x8b\xa8\x9e\xc5\xb3\x79\x36\x09\x22\x40\x7a\xbf\x55\xc7\xf4\x44\xa5\x25\x32\x0d\xb1\x9e\x3d\x9c\xc4\x57\xc1\xd7\x59\x96\x66\x61\xed\x49\x34\x99\xa4\xb3\xe0\x2c\x99\x0c\x82\x71\x3a\x98\x8f\xe2\x60\xad\xb6\x9e\xae\xd7\xd6\x6a\xf5\xc3\xd9\x79\x96\x5e\x05\x67\xcd\x7e\x3a\x88\x1f\xd6\x5e\x7c\xf7\xf4\x87\xe7\x5f\x9f\xbe\xfc\xee\xf5\xe9\x37\xdf\xfd\xf0\xf2\x69\xad\x71\x76\x8b\xf8\x46\x0f\x91\xf6\x87\xef\xe3\xeb\x69\x9a\xcd\xf2\xee\xfb\xdb\xdb\x43\x6c\xc3\x71\xeb\xa4\xd9\x8f\x46\xa3\x70\xd4\x94\x59\x0d\x45\x7d\x18\x8b\x06\x4e\x1e\x12\x60\xfb\xe4\x38\x3e\x39\x94\xa4\xe6\xe1\xe4\xd1\xa4\x1b\xd7\x6f\x1b\xa3\x86\x29\x19\x37\x04\xef\x6e\x25\x14\x56\xa9\x32\x89\x8a\x64\x29\x5e\x9d\x41\x9b\x11\x3a\x7d\xd8\x3a\x4c\xbf\xcc\x9a\xa3\x78\x32\x9c\x9d\x1f\xa6\xeb\xeb\xf5\x3c\xcc\x90\xf1\x9a\x8c\xdb\x7a\xf8\xbe\xdd\x3d\xd6\x24\x4b\x14\x0d\xc1\xa5\x86\xac\xbb\xfe\xfe\xde\xe6\x83\x7b\xc1\x83\xe0\x45\x32\x49\xd2\xe0\xc9\x28\x9d\x0f\x82\xa3\x59\x9a\x45\xc3\xb8\x11\x84\x4f\xea\x41\xa7\xd5\xde\x11\xb9\x8d\xe0\xd9\xa4\xdf\x04\x60\x84\x7f\x9e\xf4\xe3\x49\x1e\x0f\x82\xf9\x64\x10\x67\xc1\xec\x3c\x0e\x1e\x4f\xa3\x3e\xfc\x23\x73\x1a\xc1\x5f\xe2\x2c\xc7\x51\xd2\x69\xb6\x82\x10\x01\xd6\x64\xd6\x5a\xfd\x10\x51\xdc\xa4\xf3\x60\x1c\xdd\x04\xd8\x81\xf3\x3c\x06\x1c\x49\x0e\x3d\x09\x5d\x18\x5f\xf7\xe3\xe9\x2c\x48\x26\x41\x3f\x1d\x4f\x47\x49\x34\xe9\xc7\xc1\x55\x32\x3b\xa7\x7a\x24\x16\xa4\x24\xf8\xbb\xc4\x91\xf6\x66\x11\x80\x47\x50\x60\x0a\x5f\x67\x1c\x30\x88\x66\x92\x68\xfc\xef\x7c\x36\x9b\x76\x37\x37\xaf\xae\xae\x9a\x11\x11\xdc\x4c\xb3\xe1\xe6\x48\x80\xe6\x9b\xcf\x9f\x3d\xf9\xfa\xe5\xd1\xd7\x1b\x40\xb4\x2c\xf4\xc3\x64\x14\xe7\xb9\xea\x97\x41\xd0\xbb\x09\xa2\x29\x10\xd5\x8f\x7a\x40\xea\x28\xba\x0a\x52\x18\xea\xc3\x2c\x86\xbc\x59\x8a\x44\x5f\x65\xc9\x2c\x99\x0c\x1b\x41\x9e\x9e\xcd\xae\xa2\x2c\x46\x34\x83\x24\x9f\x65\x49\x6f\x3e\xb3\x78\xa6\x48\x84\x96\x73\x00\xe0\x5a\x34\x09\xd6\x1e\x1f\x05\xcf\x8e\xd6\x82\x3f\x3e\x3e\x7a\x76\xd4\x40\x24\x7f\x7d\xf6\xfa\xdb\xef\x7e\x78\x1d\xfc\xf5\xf1\xab\x57\x8f\x5f\xbe\x7e\xf6\xf5\x51\xf0\xdd\xab\xe0\xc9\x77\x2f\x9f\x3e\x7b\xfd\xec\xbb\x97\xf0\xf5\x4d\xf0\xf8\xe5\xdf\x83\x3f\x3f\x7b\xf9\xb4\x11\xc4\xc0\x31\xa8\x07\xba\x3a\xc3\x16\x00\x99\x09\x72\x33\x1e\x10\xeb\x8e\xe2\xd8\x22\x01\xc6\x16\x7d\xe7\xd3\xb8\x9f\x9c\x25\x7d\x68\xda\x64\x38\x87\x71\x10\x0c\xd3\xcb\x38\x9b\x40\x8b\x82\x69\x9c\x8d\x93\x1c\x7b\x35\x07\x02\x07\x88\x66\x94\x8c\x93\x59\x34\xa3\xa4\x42\xbb\xb0\xa2\xcd\x7b\xf7\xd6\xb0\x7b\xb1\x75\xfd\xd9\xda\xe1\xbd\x7b\x38\x82\x4f\xfb\x59\x1c\xcd\xe2\x27\xa3\x08\x28\x7b\x18\x18\x29\x13\xd6\x83\xf7\x81\xfe\x1a\xc4\x30\xb5\xe3\xef\xb3\x14\x6a\x9e\x25\x71\x1e\xce\xa2\x6c\x18\xcf\x1a\xc1\x14\x92\x72\x02\x05\xb2\x69\x4e\x24\x80\xa6\x75\x08\xff\x7c\x29\x32\xd5\xe4\x08\x12\x98\x1d\x00\x88\x30\x83\x38\xef\x67\xc9\x14\xc6\x37\x00\x13\xd4\x71\x72\x72\xc8\x92\x9b\xf1\x64\x3e\x8e\x33\xea\xda\x87\x25\xe9\x3f\xfd\x14\x9c\x45\xa3\x3c\xb6\xca\xf5\xd3\xc9\x59\x32\x9c\xab\x92\xb3\x6c\x0e\xf9\xc9\x59\x10\xae\x5d\x46\xa3\x79\xbc\x86\xe3\xc2\x80\xd7\x79\x51\x1c\x2e\x56\xb1\xef\x7a\x6f\xe3\xfe\xac\x69\xb5\xfd\x46\xb7\x9c\x95\xbc\x88\x6f\xf8\x77\xfd\x30\xb8\x85\xff\x93\x12\xc0\x70\xf4\x09\xf4\x0d\x60\xee\x03\x08\x31\x6e\x96\x22\xd2\x1c\xc6\x27\x76\x5c\xff\x7b\xc5\x4a\x24\xd7\x64\xd7\x8b\xcc\x67\x88\x9a\x04\x88\x32\x8b\xa3\xac\x8b\x36\x5b\x78\xab\xb0\xd8\x24\x1c\x2a\xd2\x19\x04\x34\x09\xfe\xbf\x1e\xd6\xd5\xb8\x01\x1e\x00\xa3\x74\xe3\xe0\x33\x3c\xbd\x6e\x04\xa7\xd7\x1d\xfc\xb3\
|
|
|
|
|
|
|
|
func distMainJsBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_distMainJs,
|
|
|
|
"dist/main.js",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func distMainJs() (*asset, error) {
|
|
|
|
bytes, err := distMainJsBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
info := bindataFileInfo{name: "dist/main.js", size: 1872465, mode: os.FileMode(420), modTime: time.Unix(1443253097, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Asset loads and returns the asset for the given name.
|
|
|
|
// It returns an error if the asset could not be found or
|
|
|
|
// could not be loaded.
|
|
|
|
func Asset(name string) ([]byte, error) {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
if f, ok := _bindata[cannonicalName]; ok {
|
|
|
|
a, err := f()
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
|
|
|
|
}
|
|
|
|
return a.bytes, nil
|
|
|
|
}
|
|
|
|
return nil, fmt.Errorf("Asset %s not found", name)
|
|
|
|
}
|
|
|
|
|
|
|
|
// MustAsset is like Asset but panics when Asset would return an error.
|
|
|
|
// It simplifies safe initialization of global variables.
|
|
|
|
func MustAsset(name string) []byte {
|
|
|
|
a, err := Asset(name)
|
|
|
|
if err != nil {
|
|
|
|
panic("asset: Asset(" + name + "): " + err.Error())
|
|
|
|
}
|
|
|
|
|
|
|
|
return a
|
|
|
|
}
|
|
|
|
|
|
|
|
// AssetInfo loads and returns the asset info for the given name.
|
|
|
|
// It returns an error if the asset could not be found or
|
|
|
|
// could not be loaded.
|
|
|
|
func AssetInfo(name string) (os.FileInfo, error) {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
if f, ok := _bindata[cannonicalName]; ok {
|
|
|
|
a, err := f()
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
|
|
|
|
}
|
|
|
|
return a.info, nil
|
|
|
|
}
|
|
|
|
return nil, fmt.Errorf("AssetInfo %s not found", name)
|
|
|
|
}
|
|
|
|
|
|
|
|
// AssetNames returns the names of the assets.
|
|
|
|
func AssetNames() []string {
|
|
|
|
names := make([]string, 0, len(_bindata))
|
|
|
|
for name := range _bindata {
|
|
|
|
names = append(names, name)
|
|
|
|
}
|
|
|
|
return names
|
|
|
|
}
|
|
|
|
|
|
|
|
// _bindata is a table, holding each asset generator, mapped to its name.
|
|
|
|
var _bindata = map[string]func() (*asset, error){
|
|
|
|
"dist/app.css": distAppCSS,
|
|
|
|
"dist/index.html": distIndexHTML,
|
|
|
|
"dist/main.js": distMainJs,
|
|
|
|
}
|
|
|
|
|
|
|
|
// AssetDir returns the file names below a certain
|
|
|
|
// directory embedded in the file by go-bindata.
|
|
|
|
// For example if you run go-bindata on data/... and data contains the
|
|
|
|
// following hierarchy:
|
|
|
|
// data/
|
|
|
|
// foo.txt
|
|
|
|
// img/
|
|
|
|
// a.png
|
|
|
|
// b.png
|
|
|
|
// then AssetDir("data") would return []string{"foo.txt", "img"}
|
|
|
|
// AssetDir("data/img") would return []string{"a.png", "b.png"}
|
|
|
|
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
|
|
|
|
// AssetDir("") will return []string{"data"}.
|
|
|
|
func AssetDir(name string) ([]string, error) {
|
|
|
|
node := _bintree
|
|
|
|
if len(name) != 0 {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
pathList := strings.Split(cannonicalName, "/")
|
|
|
|
for _, p := range pathList {
|
|
|
|
node = node.Children[p]
|
|
|
|
if node == nil {
|
|
|
|
return nil, fmt.Errorf("Asset %s not found", name)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if node.Func != nil {
|
|
|
|
return nil, fmt.Errorf("Asset %s not found", name)
|
|
|
|
}
|
|
|
|
rv := make([]string, 0, len(node.Children))
|
|
|
|
for childName := range node.Children {
|
|
|
|
rv = append(rv, childName)
|
|
|
|
}
|
|
|
|
return rv, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type bintree struct {
|
|
|
|
Func func() (*asset, error)
|
|
|
|
Children map[string]*bintree
|
|
|
|
}
|
|
|
|
|
|
|
|
var _bintree = &bintree{nil, map[string]*bintree{
|
|
|
|
"dist": {nil, map[string]*bintree{
|
|
|
|
"app.css": {distAppCSS, map[string]*bintree{}},
|
|
|
|
"index.html": {distIndexHTML, map[string]*bintree{}},
|
|
|
|
"main.js": {distMainJs, map[string]*bintree{}},
|
|
|
|
}},
|
|
|
|
}}
|
|
|
|
|
|
|
|
// RestoreAsset restores an asset under the given directory
|
|
|
|
func RestoreAsset(dir, name string) error {
|
|
|
|
data, err := Asset(name)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
info, err := AssetInfo(name)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// RestoreAssets restores an asset under the given directory recursively
|
|
|
|
func RestoreAssets(dir, name string) error {
|
|
|
|
children, err := AssetDir(name)
|
|
|
|
// File
|
|
|
|
if err != nil {
|
|
|
|
return RestoreAsset(dir, name)
|
|
|
|
}
|
|
|
|
// Dir
|
|
|
|
for _, child := range children {
|
|
|
|
err = RestoreAssets(dir, filepath.Join(name, child))
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func _filePath(dir, name string) string {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
|
|
|
|
}
|
|
|
|
|
|
|
|
func assetFS() *assetfs.AssetFS {
|
|
|
|
for k := range _bintree.Children {
|
|
|
|
return &assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, Prefix: k}
|
|
|
|
}
|
|
|
|
panic("unreachable")
|
|
|
|
}
|