1
0
Fork 0
mirror of https://github.com/Luzifer/share.git synced 2024-10-18 13:24:23 +00:00
share/bindata.go
Knut Ahlers 4283a99dee
Add support for audio embedding
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2018-04-22 21:18:56 +02:00

393 lines
16 KiB
Go

// Code generated by go-bindata. DO NOT EDIT.
// sources:
// frontend/app.js
// frontend/index.html
package main
import (
"bytes"
"compress/gzip"
"fmt"
"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 fileInfoEx
}
type fileInfoEx interface {
os.FileInfo
MD5Checksum() string
}
type bindataFileInfo struct {
name string
size int64
mode os.FileMode
modTime time.Time
md5checksum string
}
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) MD5Checksum() string {
return fi.md5checksum
}
func (fi bindataFileInfo) IsDir() bool {
return false
}
func (fi bindataFileInfo) Sys() interface{} {
return nil
}
var _bindataFrontendAppjs = []byte(
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x56\x4b\x8f\xdb\x36\x10\xbe\xeb\x57\xcc\xc1\x00\xa9\xd4\x91\x1b\x24" +
"\x27\xbb\x0e\x5a\x24\xce\xee\x02\xfb\x28\xbc\xde\xdb\xa2\x1b\x5a\x1a\x8b\xdc\xd0\xa4\x40\x52\xb1\x83\xac\xff\x7b" +
"\x41\xea\x61\xc9\x76\x9c\x22\x40\x75\xa2\xc8\x99\x6f\xe6\x9b\x17\x29\xd1\xc1\x4a\x48\x7c\x98\x5f\xc3\x14\x54\x29" +
"\xe5\x24\x4a\xb5\xb2\x0e\x6e\xee\x2f\x9e\x6e\xef\x16\x4f\x9f\xee\x1e\x6e\x3f\xc2\x14\xc8\x27\x21\x11\x94\x76\xb0" +
"\xd2\xa5\xca\xc8\xa1\xdc\xdf\xb3\xf9\xcd\xd5\x62\x31\x0b\xb2\xb7\xda\x01\x93\x52\x6f\x30\x03\xa7\x81\xa5\x29\x5a" +
"\x1b\x0c\xf5\xf4\x2e\x66\xb7\xb3\xf9\xd5\x87\xa7\xd9\x7c\xee\xb5\xee\xf5\x1a\x1d\x17\x2a\x87\x0d\x2a\x07\x1b\xa3" +
"\x55\x4e\x26\x51\x34\x7a\x05\xb9\xd4\x4b\x26\x61\x30\x5e\x31\x69\x11\x5e\x8d\xa2\x28\x95\xcc\x5a\xb8\xe7\xcc\x20" +
"\x7c\x8f\x00\x84\x12\x8e\xc6\x61\x09\x30\xa0\x1b\xa1\x32\xbd\x89\x93\xa5\x50\x19\x25\x9c\x59\x9e\x72\xa6\x72\x24" +
"\x43\xa0\x18\xc3\xf4\x7d\x2d\x09\xe0\xb8\xb0\x89\x17\xb8\xd6\x2c\xa3\xf1\x24\x6c\xef\xe2\x49\x14\x16\x3e\x42\xac" +
"\x28\x16\xc2\x49\x84\x29\x7c\xae\x0c\xfe\x09\x83\xef\x95\x85\x44\xea\x94\x39\xa1\x55\xc2\xb5\x75\xbb\xcf\x93\xda" +
"\x3e\x71\x5e\x63\x98\xb0\xa2\x08\x2b\x12\x27\x0e\xb7\x8e\x36\x58\x0d\xfe\x09\xeb\x3b\x7f\x82\xeb\x25\x66\x3e\xe6" +
"\x57\x6a\xa5\xa9\x0f\x9d\x0f\x11\x69\x08\x8a\x15\xd4\x9b\xd3\xee\x76\x8b\xa7\x32\x89\x33\x63\xb4\xb9\x41\x6b\x59" +
"\x8e\xb4\x97\xcf\x86\x64\xe5\xc2\xbe\x00\xfc\xaa\x26\x90\xb0\x67\xb6\x0d\x26\x86\x2d\xb6\x4f\x8f\xce\xc6\x40\x2e" +
"\x67\x7f\x7d\x24\xc3\x7a\xd7\x96\x21\xbd\x63\xa0\x19\x73\x6c\x08\xd6\x31\x57\xda\x21\x6c\xb9\xe9\xc5\xb9\xef\x9b" +
"\xa7\x77\x42\x61\x52\x0b\xef\x1a\x74\xf4\x24\xc6\x40\xb7\xdc\x34\x92\x67\x50\xbd\x70\x4f\xf4\x00\x6f\xb7\x0f\xf0" +
"\x79\x3f\x6a\x7c\x9f\x7d\xf7\xad\xf0\xb1\xdf\x72\x93\xe4\xe8\xe6\x68\x0b\xad\x2c\x5e\x22\xcb\xd0\x50\xf2\x41\x2b" +
"\x87\xca\xbd\x5e\x7c\x2b\x90\x34\x49\x1d\x50\x92\xa4\x5a\x39\x26\x14\x1a\x12\x27\x5c\x64\xd8\x54\x96\x3f\xf3\x61" +
"\x55\x6c\xdd\x16\x45\x9d\x81\xc4\x96\x4b\xeb\x8c\x50\x79\xbb\x23\x99\x75\x57\x2a\xc3\xed\xdd\x8a\x92\x11\x89\xe1" +
"\x37\x78\x13\x37\x66\x7c\x11\x78\xef\x92\x35\x73\x29\xa7\xa3\x7f\xc4\x9a\xe5\xf8\x38\x1a\xc5\xfb\x7a\x68\xcc\x49" +
"\xa1\xbe\xbc\xb6\x26\x25\x71\xc2\x9c\x33\x94\xf8\xf5\xb0\xc9\x7d\x1b\x27\x2f\x6e\xb9\xde\xbc\x0e\x50\x24\x0e\x3f" +
"\xb4\x3d\x36\xe8\x4a\xa3\x7a\xd5\x73\xe4\xc4\x57\x91\xa1\xee\x3b\xe1\xc3\x68\x4d\x0a\x53\x8f\xff\x87\xd5\xa5\x49" +
"\xf1\x3d\x69\x51\xad\x49\xcf\x3a\x15\xce\x8b\x02\x55\xb6\xd0\x74\x40\x49\xb0\x40\xe2\x63\xa7\xeb\x83\x5f\x70\x9a" +
"\x95\x99\xd0\x8f\x23\xca\x58\xfa\xb2\x2e\xde\xbe\xac\x0b\xcc\xe3\xc1\xff\xc8\x21\x18\x3c\xc5\xa1\x3e\xf8\x05\x0e" +
"\xd4\xd7\xd2\xe3\xe8\x85\x15\x85\x14\xd5\x50\x7a\x1c\x3d\xb3\xaf\xcc\xa6\x46\x14\x2e\xee\x95\xc5\xbe\xbf\x1f\xe6" +
"\xd7\xc3\x4e\x3b\xf9\x5e\xf0\xc5\x3c\x06\xe2\xf1\xda\x36\xef\xb4\xff\xc5\x6c\xd1\xd9\xee\xf7\xff\x41\x73\x06\x62" +
"\xa9\xce\xda\x52\x0f\x32\x93\xfe\x79\x45\x3c\x58\x3b\xe4\xed\x3f\x2e\x9f\x6d\xe2\xc7\xfb\xa5\xc8\xb9\x14\x39\x77" +
"\xbe\x43\x3a\x22\xbb\xbd\x33\x3f\x1f\x17\xff\x71\x60\x74\x50\x77\xe7\xb2\xd0\xeb\x2f\x6e\x70\xd5\x36\x58\xf8\x39" +
"\x2c\x84\x96\x6d\x8e\x0a\x8d\x48\x7b\x84\xbb\x73\xe9\xc8\xb1\xce\x44\x5a\x57\x33\x3d\x5c\x08\x15\xac\xdd\x08\x97" +
"\xf2\x40\x3b\xe9\xcb\x03\xa4\xcc\x22\xbc\xfb\xfd\xdd\xb8\x93\xc8\x46\xbf\x77\x2b\xec\xa9\x2f\x0d\xb2\x2f\x93\xbe" +
"\xfe\xdb\x73\xfa\xed\xed\xff\x03\x8c\x0c\x57\xac\x94\xee\x47\x10\x9d\x87\xc0\x49\x80\x5d\xef\xae\x3c\xba\xdb\x6a" +
"\xb0\x93\x31\x3c\x94\x69\x1f\x08\x24\x09\xb5\xd2\xd4\x65\x17\xe3\xe7\x03\x3c\xa4\xb0\xd1\x3f\x4a\x60\x73\x99\x77" +
"\x52\x56\x5f\xe0\x47\x6f\x06\x66\x79\x67\xea\xbf\xa9\x4d\x04\xa2\xc7\x2f\x80\xda\xc6\x2e\x8a\x06\x74\x55\xaa\xd4" +
"\x43\xd4\x56\xc2\x74\x0a\x4f\x93\x29\x28\xdc\x54\xef\xa2\xca\xa9\xb0\x9d\x54\xcf\xa3\x49\xe4\x8b\xf9\xdf\x00\x00" +
"\x00\xff\xff\xcc\xb0\x6a\xfb\xf6\x09\x00\x00")
func bindataFrontendAppjsBytes() ([]byte, error) {
return bindataRead(
_bindataFrontendAppjs,
"frontend/app.js",
)
}
func bindataFrontendAppjs() (*asset, error) {
bytes, err := bindataFrontendAppjsBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{
name: "frontend/app.js",
size: 2550,
md5checksum: "",
mode: os.FileMode(436),
modTime: time.Unix(1, 0),
}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _bindataFrontendIndexhtml = []byte(
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x57\x5b\x57\xdb\xba\x12\x7e\xef\xaf\xd0\xf6\x5e\xe7\x09\x64\xe5\x46" +
"\x08\x6c\x3b\x6b\x11\x02\x05\xd2\x90\x72\x2d\xe5\x4d\xb1\xc6\xb6\x12\x59\x72\x24\x39\x26\xb0\xce\x7f\x3f\xcb\xce" +
"\x95\x9e\x42\x43\x57\x37\x2f\x66\x66\x34\xa3\xef\x9b\x19\x49\x13\xef\x2f\xa6\x02\x3b\x4b\x01\xc5\x36\x11\xed\x4f" +
"\x5e\xf1\x41\x82\xca\xc8\x77\x40\x3a\xed\x4f\x08\x79\x31\x50\x56\xfc\x83\x90\xf7\x17\xc6\xe8\x1a\x26\x19\xd7\xc0" +
"\x50\x02\x96\x22\x4b\x23\x83\x30\x5e\xd8\x4b\x55\x10\x53\x6d\xc0\xfa\x4e\x66\x43\xdc\x72\x36\x4d\xb1\xb5\x29\x2e" +
"\xfc\xa7\xbe\xf3\x80\xef\x8e\xf0\xb1\x4a\x52\x6a\xf9\x50\x80\x83\x02\x25\x2d\x48\xeb\x3b\xe7\x27\x3e\xb0\x08\x5e" +
"\x79\x4a\x9a\x80\xef\x4c\x39\xe4\xa9\xd2\x76\x63\x71\xce\x99\x8d\x7d\x06\x53\x1e\x00\x2e\x85\x5d\xc4\x25\xb7\x9c" +
"\x0a\x6c\x02\x2a\xc0\xaf\xee\x22\x13\x6b\x2e\xc7\xd8\x2a\x1c\x72\xeb\x4b\xe5\xb4\x3f\xad\x09\x75\x94\xb2\xc6\x6a" +
"\x9a\xa2\xe3\x9b\x9b\x35\x17\xc1\xe5\x18\x69\x10\xbe\x63\xec\x4c\x80\x89\x01\xac\x83\x62\x0d\xa1\xef\x14\x3c\xcc" +
"\x21\x21\x01\x93\x23\xe3\x06\x42\x65\x2c\x14\x54\x83\x1b\xa8\x84\xd0\x11\x7d\x22\x82\x0f\x0d\xb1\x39\xb7\x16\x34" +
"\x1e\x2e\x77\x20\x0d\xb7\xe2\x56\x48\x60\x0c\x59\xe9\xdc\x84\x4b\x37\x30\xc6\x29\xb7\x9d\xff\x71\x69\x21\xd2\xdc" +
"\xce\x7c\xc7\xc4\xb4\xb6\xd7\xc4\x5f\x8e\x5a\x07\xcf\x3b\xe3\x83\x70\x14\xf5\x7b\x57\x64\x3c\x69\x0c\x06\xb5\xbe" +
"\x0e\x5b\xf7\xc2\x7e\x4f\x04\xb9\x3f\xb9\xd9\xb9\x8e\x2a\x61\x5c\xab\xf8\x0e\x0a\xb4\x32\x46\x69\x1e\x71\xe9\x3b" +
"\x54\x2a\x39\x4b\x54\x66\x1c\x44\xfe\x1c\xb7\x12\x7f\x4e\x6d\x10\x2f\x48\x31\xaa\xc7\x62\xf6\x51\x5e\xc3\xb8\xdb" +
"\x20\x5d\x76\x7c\x94\x5e\x1e\x7d\x17\x83\x74\xda\x33\xe6\x8e\xd6\xe2\x6e\xa5\x9b\xb5\x9e\x74\x34\x98\xda\xef\x8d" +
"\xbc\xb6\x67\xe2\xfe\xfb\xbc\xb6\x27\x96\x19\x70\x43\x25\x2d\xcd\xc1\xa8\x64\xce\x4b\x83\x00\x6a\xc0\x90\xe9\x9e" +
"\x5b\x71\xab\xf3\x12\x51\x21\xde\x27\x50\x6f\x35\xf0\x0e\xab\x7c\x6d\xd5\xe5\xc1\x98\x5e\xf5\x8f\xf3\x51\xeb\xb4" +
"\x71\x7d\xd1\x69\x36\xed\xf3\x79\x3e\xe8\x25\x9a\x0d\x1b\xcd\x9d\x54\xe9\x2e\x19\x4c\xf5\xc5\x4e\x7d\xff\xdb\xe4" +
"\xbc\xbf\x7f\xa7\x3a\x36\x3f\x1b\x34\x2f\x45\xf4\x26\xa9\x3f\x57\xaa\x98\x47\xb1\xe0\x51\x6c\xdd\x91\x21\x07\x6e" +
"\xb5\xe6\x56\xc8\x3c\x18\xa1\x92\x69\xc5\x99\xb1\x19\xe3\x6a\xbb\x8a\xe9\x93\x7b\x39\x83\x7e\x38\xee\x3d\x27\x9d" +
"\x5c\x05\x0c\x80\x4f\x3e\x0f\xb2\x6a\x9f\x58\x7b\x77\xd6\xd9\xef\x55\x12\xe8\x9d\xe7\x93\x69\xbe\x4d\xc5\x2c\xb7" +
"\x02\xda\x37\x31\xd5\xe0\x91\xb9\xb0\xb0\x94\x10\xdb\x0b\x2c\xb4\x00\x88\x5e\x50\x79\xc2\x0f\x51\xab\xf2\x9f\x7f" +
"\xd0\x7f\x17\xb6\xb8\x8a\x5e\x90\x85\x27\x8b\xa9\xe0\x91\x3c\x44\x01\x48\x0b\xfa\x1f\x54\x54\x19\x1b\xfe\x0c\x87" +
"\x68\x7f\x2f\x7d\xda\xf0\xa8\xfd\xda\xa3\xd6\xd8\xf4\x48\x35\xa0\x40\x31\x40\x2f\x28\x50\x42\xe9\x43\xf4\x37\xb4" +
"\xea\xd0\x0a\xd6\x4b\xdc\xe2\x4e\xa2\x5c\x82\x46\x2f\x28\xa1\x3a\xe2\x12\x5b\x95\x1e\xa2\x7a\x65\x33\x92\x6b\x62" +
"\x95\xe3\x08\x24\x68\x1e\xec\x2e\x44\x9e\xd0\x08\x96\xc2\x94\x33\x50\x4b\x01\xb4\x56\x45\x40\xc6\x4d\x2a\xe8\xec" +
"\x10\x49\x25\x61\x19\xcd\x23\xab\x24\x79\x64\x79\x4f\x7b\x43\xc5\x66\x8b\xee\x91\x74\x8a\x02\x41\x8d\xf1\x1d\x49" +
"\xa7\x43\xaa\xd1\xfc\x83\xe1\x29\xa5\x92\x61\x11\x2d\x15\xc5\xf1\x45\xc3\x08\xa7\x9a\x27\x54\xcf\x9c\x65\xe2\x3d" +
"\xfa\x3a\x00\x1e\x6a\x2a\xd9\xb2\x03\xff\x76\xda\x1e\x5f\x2e\x08\xa9\x41\x21\xc5\xa6\xa8\x25\xa6\xc2\x62\x33\xc9" +
"\xa8\x06\xa7\xed\x11\xde\x5e\xf5\x94\x67\x52\x2a\x97\x2e\x34\x4d\xcb\x9a\x3b\xcb\x0e\x28\x8c\x6d\x8f\xd0\x05\x7e" +
"\x22\xe9\x74\xd9\x0f\x8c\xaf\xb8\xac\x33\x5d\xe6\x48\x28\xca\xb8\x8c\xd6\x98\xe3\xea\xc6\x7e\xff\x87\x2f\xe5\xb2" +
"\x70\x0d\x29\x4e\x33\x61\xc0\x41\x54\x73\x8a\x63\xce\x18\x48\xdf\xb1\x3a\x7b\x0d\xd9\x23\xcb\x70\x1e\x61\x7c\x0b" +
"\x38\x8b\xda\x6e\x09\xa7\x3c\xb6\x98\xa9\x5c\x16\x34\x8a\xbc\xbd\xb1\x7b\x11\xa8\xd6\xf6\xe8\x2a\xf5\xab\x40\x5c" +
"\x40\x71\x4d\xe0\xc2\x80\x0a\xa9\x78\x2d\x9d\x76\x26\xcb\xdc\xb2\x22\x9d\x1e\x89\x6b\x1f\x22\x51\x76\xe4\xfc\x8c" +
"\xcc\x0f\xc7\x66\x47\xbc\x8b\xc0\xd9\x24\x9b\x44\xc8\xe8\xc0\x77\x56\x4b\x79\x12\xe1\x50\x64\x9c\xa1\x95\x93\xd1" +
"\x1b\xb9\x5a\x97\x7e\x2b\x98\xe5\x59\x59\x7b\x6f\x2c\x84\x64\x08\x0c\x6b\x30\xa9\x92\x86\x4f\x01\xfd\xa8\xc0\xd5" +
"\xe6\x70\x76\xb0\x89\xb6\x0c\x56\x8e\x16\x5a\x09\xb3\x61\x20\xa5\x65\x8d\xb1\x84\xf6\x01\x94\xf3\xdb\xeb\xe7\xc9" +
"\x2c\x4d\xab\x3d\x3d\x52\x2a\x3e\x14\xbd\x88\xbb\x0e\x98\x6a\x68\x7b\xc5\x55\xd5\xf6\xc8\xe2\x53\xa8\x3e\x12\xb0" +
"\xbc\x73\xb6\x6c\x5f\x78\x0a\x04\x4d\xa8\xe5\x4a\xe2\x80\xeb\x40\xbc\x75\x78\xca\xf6\x5d\x15\x67\xbe\xc3\x1b\x5d" +
"\x59\x4c\x65\xa3\xab\x0c\xf4\x0c\x85\x5c\x1b\xbb\x8b\x6c\x0c\x12\x7d\x55\x69\x0a\xda\x1d\x99\x85\xbc\x1e\xdc\x2e" +
"\x36\xe6\x36\x13\x68\x9e\xda\x79\xd7\x6d\xf9\x40\x8e\x26\xc5\x5e\xa4\xee\xd6\xdd\xea\x42\x28\xdf\xc2\xd1\xab\xa7" +
"\xf0\x67\x8f\xe1\x69\x94\x1e\x0f\x49\xef\xe2\x4a\x7c\xb9\x0c\x07\xd9\x41\xd5\xd2\x7a\x4d\x91\xcb\xfe\xe3\x93\xb0" +
"\xf9\xb5\x6a\x5d\xd9\x64\xdc\xbf\x66\x47\x59\xeb\xed\xc7\xb0\xed\x91\x39\xe8\xdf\x67\x90\x2e\x53\x43\xaa\x6e\xb5" +
"\xe1\x56\x97\x8a\xed\x58\xdc\xdc\xd6\xfa\x10\xe8\x07\x7d\x41\x8f\xcc\x24\x09\xd3\xf1\xc1\xc3\xf5\xd5\xf9\xad\xe8" +
"\xaa\x59\x3f\xb9\xb3\x51\xaf\x73\x22\x59\x97\x9b\x9b\xe0\x5f\x65\xf1\xd6\xbc\x3c\xfa\x71\x5c\xfe\x35\xa5\xbd\x9d" +
"\x4a\xed\x39\xdb\xbb\xbb\xfb\x72\x35\x1e\xec\xe7\xd5\xcf\xe7\xba\x39\x0d\xed\x71\xd4\x0f\x4f\xd9\x63\x70\x74\x06" +
"\x5d\x7b\x2a\x7b\x8f\xa6\x63\xb6\xa2\xf4\xdb\x9c\x7e\x36\x7c\xad\x75\xdb\x91\x21\x9d\x90\x9f\x8f\xcf\xc4\x99\xba" +
"\xe7\xf1\x23\x0b\x9a\xb7\xa7\xd9\x68\xbf\x9f\x5c\x54\x6e\xbf\x05\xdf\x4c\xff\x61\x0c\xdd\xd3\x3c\xe6\x95\xe7\x77" +
"\x46\xae\x77\xc9\xd0\x34\x2d\x70\xbc\xaa\xa1\x47\xe6\x83\x84\x47\xe6\xbf\x0d\xff\x17\x00\x00\xff\xff\x03\x43\x00" +
"\x2b\x2c\x0e\x00\x00")
func bindataFrontendIndexhtmlBytes() ([]byte, error) {
return bindataRead(
_bindataFrontendIndexhtml,
"frontend/index.html",
)
}
func bindataFrontendIndexhtml() (*asset, error) {
bytes, err := bindataFrontendIndexhtmlBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{
name: "frontend/index.html",
size: 3628,
md5checksum: "",
mode: os.FileMode(436),
modTime: time.Unix(1, 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, &os.PathError{Op: "open", Path: name, Err: os.ErrNotExist}
}
//
// MustAsset is like Asset but panics when Asset would return an error.
// It simplifies safe initialization of global variables.
// nolint: deadcode
//
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, &os.PathError{Op: "open", Path: name, Err: os.ErrNotExist}
}
//
// AssetNames returns the names of the assets.
// nolint: deadcode
//
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){
"frontend/app.js": bindataFrontendAppjs,
"frontend/index.html": bindataFrontendIndexhtml,
}
//
// 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, &os.PathError{
Op: "open",
Path: name,
Err: os.ErrNotExist,
}
}
}
}
if node.Func != nil {
return nil, &os.PathError{
Op: "open",
Path: name,
Err: os.ErrNotExist,
}
}
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{Func: nil, Children: map[string]*bintree{
"frontend": {Func: nil, Children: map[string]*bintree{
"app.js": {Func: bindataFrontendAppjs, Children: map[string]*bintree{}},
"index.html": {Func: bindataFrontendIndexhtml, Children: 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
}
return os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
}
// 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, "/")...)...)
}