1
0
Fork 0
mirror of https://github.com/Luzifer/share.git synced 2024-10-18 13:24:23 +00:00
share/bindata.go

392 lines
16 KiB
Go
Raw Normal View History

// 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\x9c\x56\x4b\x6f\x1b\x37\x10\xbe\xef\xaf\x98\x83\x00\x72\x53\x79\xd5\xa0" +
"\x39\x49\x55\xd0\x22\x51\x6c\x03\x7e\x14\xb2\x7c\x33\xea\x50\xdc\xd1\x92\x0e\x45\x2e\x48\x2a\x52\x90\xea\xbf\x17" +
"\xe4\x3e\xb4\x2b\x39\x4a\x51\x9d\x28\x72\xe6\x9b\xd7\x37\x33\xab\xd0\xc3\x4a\x2a\x7c\x9c\xdf\xc0\x14\xf4\x46\xa9" +
"\x49\xc2\x8d\x76\x1e\x6e\x1f\x2e\x9f\xef\xee\x17\xcf\x9f\xee\x1f\xef\x3e\xc2\x14\xc8\x27\xa9\x10\xb4\xf1\xb0\x32" +
"\x1b\x9d\x93\x63\xb9\xbf\x66\xf3\xdb\xeb\xc5\x62\x16\x65\xef\x8c\x07\xa6\x94\xd9\x62\x0e\xde\x00\xe3\x1c\x9d\x8b" +
"\x86\x7a\x7a\x97\xb3\xbb\xd9\xfc\xfa\xc3\xf3\x6c\x3e\x0f\x5a\x0f\x66\x8d\x5e\x48\x5d\xc0\x16\xb5\x87\xad\x35\xba" +
"\x20\x93\x24\x19\xbd\x81\x42\x99\x25\x53\x30\x18\xaf\x98\x72\x08\x6f\x46\x49\xc2\x15\x73\x0e\x1e\x04\xb3\x08\xdf" +
"\x13\x00\xa9\xa5\xa7\x69\x3c\x02\x0c\xe8\x56\xea\xdc\x6c\xd3\x6c\x29\x75\x4e\x89\x60\x4e\x70\xc1\x74\x81\x64\x08" +
"\x14\x53\x98\xbe\xaf\x25\x01\xbc\x90\x2e\x0b\x02\x37\x86\xe5\x34\x9d\xc4\xeb\x7d\x3a\x49\xe2\x21\x64\x88\x95\xe5" +
"\x42\x7a\x85\x30\x85\xcf\x95\xc1\x3f\x60\xf0\xbd\xb2\x90\x29\xc3\x99\x97\x46\x67\xc2\x38\xbf\xff\x3c\xa9\xed\x13" +
"\x1f\x34\x86\x19\x2b\xcb\x78\x22\x69\xe6\x71\xe7\x69\x83\xd5\xe0\xbf\x62\x7d\x1f\x5e\x70\xbd\xc4\x3c\xe4\xfc\x5a" +
"\xaf\x0c\x0d\xa9\x0b\x29\x22\x4d\x80\x72\x05\xf5\xe5\xb4\x7b\xdd\xe2\xe9\x5c\xe1\xcc\x5a\x63\x6f\xd1\x39\x56\x20" +
"\xed\xd5\xb3\x09\xb2\x72\xe1\x40\x80\x70\xaa\x03\xc8\xd8\x0b\xdb\x45\x13\xc3\x16\x3b\x94\xc7\xe4\x63\x20\x57\xb3" +
"\x3f\x3f\x92\x61\x7d\xeb\x36\xb1\xbc\x63\xa0\x39\xf3\x6c\x08\xce\x33\xbf\x71\x43\xd8\x09\xdb\xcb\x73\xdf\xb7\x10" +
"\xde\x2b\x0a\x93\x5a\x78\xdf\xa0\x63\x08\x62\x0c\x74\x27\x6c\x23\x79\x06\x35\x08\xf7\x44\x8f\xf0\xf6\x87\x04\x9f" +
"\xf7\xa3\xc6\x0f\xd5\xf7\xdf\xca\x90\xfb\x9d\xb0\x59\x81\x7e\x8e\xae\x34\xda\xe1\x15\xb2\x1c\x2d\x25\x1f\x8c\xf6" +
"\xa8\xfd\xc5\xe2\x5b\x89\xa4\x29\xea\x80\x92\x8c\x1b\xed\x99\xd4\x68\x49\x9a\x09\x99\x63\xc3\xac\xf0\x16\xd2\xaa" +
"\xd9\xba\x25\x45\x5d\x81\xcc\x6d\x96\xce\x5b\xa9\x8b\xf6\x46\x31\xe7\xaf\x75\x8e\xbb\xfb\x15\x25\x23\x92\xc2\x2f" +
"\xf0\x36\x6d\xcc\x04\x12\x04\xef\xb2\x35\xf3\x5c\xd0\xd1\xdf\x72\xcd\x0a\x7c\x1a\x8d\xd2\x03\x1f\x1a\x73\x4a\xea" +
"\x2f\x17\xce\x72\x92\x66\xcc\x7b\x4b\x49\x38\x0f\x9b\xda\xb7\x79\x0a\xe2\x4e\x98\xed\x45\x84\x22\x69\xfc\x43\xdb" +
"\x67\x8b\x7e\x63\x75\x8f\x3d\x27\x4e\x7c\x95\x39\x9a\xbe\x13\x21\x8d\xce\x72\x98\x06\xfc\xdf\x9d\xd9\x58\x8e\xef" +
"\x49\x8b\xea\x2c\x3f\xeb\x54\x7c\x2f\x4b\xd4\xf9\xc2\xd0\x01\x25\xd1\x02\x49\x4f\x9d\xae\x1f\xfe\x87\xd3\x34\xd4" +
"\xe1\x69\xf4\x0f\x2b\x4b\x25\xab\x86\x7e\x1a\xbd\xb0\xaf\xcc\x71\x2b\x4b\x9f\xf6\x52\x7a\xe8\x8d\xc7\xf9\xcd\xb0" +
"\x43\xc5\xc0\xa3\x40\x84\x31\x90\x80\xd7\xb6\x48\xa7\x75\x2e\x67\x8b\xce\x75\xbf\x77\x8e\x88\x1d\x03\xe3\x26\x6f" +
"\x69\x12\x65\x26\xfd\xf7\x2a\xf0\x68\xed\x38\xee\xf0\x13\xea\xc5\x65\x61\x34\x5e\xc9\x42\x28\x59\x08\x1f\xd8\xd5" +
"\x11\xd9\x1f\x9c\xf9\x79\xab\xfd\xc7\x66\xeb\xa0\xee\xcf\x55\xa1\xc7\x4d\x61\x71\xd5\x92\x33\xfe\x39\x26\x42\x1b" +
"\x6d\x81\x1a\xad\xe4\xbd\x80\xbb\x3d\x7d\xe2\x58\xa7\x9b\xd7\xd5\x3c\x8c\xc3\xb4\x82\x75\x5b\xe9\xb9\x88\x61\x67" +
"\x7d\x79\x00\xce\x1c\xc2\xbb\x5f\xdf\x8d\x3b\x85\x6c\xf4\x7b\x13\xf5\x10\xfa\xd2\x22\xfb\x32\xe9\xeb\xff\x76\x4e" +
"\xbf\xdd\x9c\x3f\xc0\xc8\x71\xc5\x36\xca\xff\x08\xa2\xb3\x44\x5f\x05\xd8\xf7\xf6\xcc\xc9\x5e\xa8\xc1\x5e\xcd\xe1" +
"\xb1\x4c\xbb\x5c\x49\x16\xb9\xd2\xf0\xb2\x8b\xf1\xf3\xe1\x17\x4b\xd8\xe8\x9f\x14\xb0\x59\x84\x9d\x92\xd5\xcb\xef" +
"\x64\xdf\x32\x27\x3a\x13\xf3\x6d\x6d\x22\x06\x7a\xba\x3d\x6b\x1b\xfb\x24\x19\xd0\xd5\x46\xf3\x00\x51\x5b\x89\xd3" +
"\x29\xae\xf5\x29\x68\xdc\x56\xdf\x14\x95\x53\xf1\x3a\xab\x3e\x2d\x26\x49\x20\xf3\xbf\x01\x00\x00\xff\xff\xf5\xea" +
"\xef\x38\x32\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: 2354,
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\xdd\x52\xe3\xb8\x12\xbe\x9f\xa7\xd0\x7a\x2f\x41\x56\xfe\x08\x81" +
"\xb5\x53\x45\x08\x2c\x90\x09\x59\x7e\x87\xe1\x4e\xb1\xda\xb6\x12\x59\x72\x24\x39\x26\x4c\x9d\x77\x3f\x65\x27\x4e" +
"\xc2\x9e\x85\x0d\x53\x73\xb8\x31\xad\x56\xb7\xbe\xaf\xbb\xa5\xee\x78\xbf\x31\x15\xd8\x45\x0a\x28\xb6\x89\xe8\x7e" +
"\xf1\x8a\x0f\x12\x54\x46\xbe\x03\xd2\xe9\x7e\x41\xc8\x8b\x81\xb2\xe2\x1f\x84\xbc\xdf\x30\x46\xb7\x30\xcb\xb8\x06" +
"\x86\x12\xb0\x14\x59\x1a\x19\x84\xf1\x4a\x5f\x2e\x05\x31\xd5\x06\xac\xef\x64\x36\xc4\x1d\x67\x5b\x15\x5b\x9b\xe2" +
"\xc2\x7e\xee\x3b\x4f\xf8\xe1\x04\x9f\xaa\x24\xa5\x96\x8f\x05\x38\x28\x50\xd2\x82\xb4\xbe\x73\x79\xe6\x03\x8b\xe0" +
"\x8d\xa5\xa4\x09\xf8\xce\x9c\x43\x9e\x2a\x6d\xb7\x36\xe7\x9c\xd9\xd8\x67\x30\xe7\x01\xe0\x52\xd8\x47\x5c\x72\xcb" +
"\xa9\xc0\x26\xa0\x02\xfc\xfa\x3e\x32\xb1\xe6\x72\x8a\xad\xc2\x21\xb7\xbe\x54\x4e\xf7\xcb\x86\x50\x4f\x29\x6b\xac" +
"\xa6\x29\x3a\xbd\xbb\xdb\x70\x11\x5c\x4e\x91\x06\xe1\x3b\xc6\x2e\x04\x98\x18\xc0\x3a\x28\xd6\x10\xfa\x4e\xc1\xc3" +
"\x1c\x13\x12\x30\x39\x31\x6e\x20\x54\xc6\x42\x41\x35\xb8\x81\x4a\x08\x9d\xd0\x17\x22\xf8\xd8\x10\x9b\x73\x6b\x41" +
"\xe3\x71\x75\x02\x69\xb9\x35\xb7\x46\x02\x63\xc8\x7a\xcd\x4d\xb8\x74\x03\x63\x9c\xf2\xd8\xe5\x1f\x97\x16\x22\xcd" +
"\xed\xc2\x77\x4c\x4c\x1b\x07\x6d\xfc\xf5\xa4\x73\xf4\xba\x37\x3d\x0a\x27\xd1\x70\x70\x43\xa6\xb3\xd6\x68\xd4\x18" +
"\xea\xb0\xf3\x28\xec\xf7\x44\x90\xc7\xb3\xbb\xbd\xdb\xa8\x16\xc6\x8d\x9a\xef\xa0\x40\x2b\x63\x94\xe6\x11\x97\xbe" +
"\x43\xa5\x92\x8b\x44\x65\xc6\x41\xe4\xd7\x71\x2b\xf1\xe7\xd4\x06\xf1\x8a\x14\xa3\x7a\x2a\x16\x9f\xe5\x35\x8e\xfb" +
"\x2d\xd2\x67\xa7\x27\xe9\xf5\xc9\x77\x31\x4a\xe7\x03\x63\x1e\x68\x23\xee\xd7\xfa\x59\xe7\x45\x47\xa3\xb9\xfd\xde" +
"\xca\x1b\x07\x26\x1e\x7e\xcc\x6b\x77\x62\x99\x01\x37\x54\xd2\xd2\x1c\x8c\x4a\x96\xbc\x34\x08\xa0\x06\x0c\x99\x1f" +
"\xb8\x35\xb7\xbe\x4c\x11\x15\xe2\x63\x02\xcd\x4e\x0b\xef\xb1\xda\x5f\x9d\xa6\x3c\x9a\xd2\x9b\xe1\x69\x3e\xe9\x9c" +
"\xb7\x6e\xaf\x7a\xed\xb6\x7d\xbd\xcc\x47\x83\x44\xb3\x71\xab\xbd\x97\x2a\xdd\x27\xa3\xb9\xbe\xda\x6b\x1e\x7e\x9b" +
"\x5d\x0e\x0f\x1f\x54\xcf\xe6\x17\xa3\xf6\xb5\x88\xde\x25\xf5\xeb\x52\x15\xf3\x28\x16\x3c\x8a\xad\x3b\x31\xe4\xc8" +
"\xad\x37\xdc\x1a\x59\x3a\x23\x54\x32\xad\x38\x33\x36\x63\x5c\xed\x96\x31\x7d\xf6\x28\x17\x30\x0c\xa7\x83\xd7\xa4" +
"\x97\xab\x80\x01\xf0\xd9\x9f\xa3\xac\x3e\x24\xd6\x3e\x5c\xf4\x0e\x07\xb5\x04\x06\x97\xf9\x6c\x9e\xef\x92\x31\xcb" +
"\xad\x80\xee\x5d\x4c\x35\x78\x64\x29\xac\x34\x25\xc4\xee\x0a\x4b\x5c\x47\x3f\x90\x85\x17\x8b\xa9\xe0\x91\x3c\x46" +
"\x01\x48\x0b\xfa\x0f\x54\x64\x12\x1b\xfe\x0a\xc7\xe8\xf0\x20\x7d\xf9\x03\xfd\xa7\xb2\x68\xfc\xbb\x45\xa3\xb5\x6d" +
"\x91\x6a\x40\x81\x62\x80\x7e\xa0\x40\x09\xa5\x8f\xd1\xef\xd0\x69\x42\x27\xd8\x6c\x71\x8b\x77\x87\x72\x09\x1a\xfd" +
"\x40\x09\xd5\x11\x97\xd8\xaa\xf4\x18\x35\x6b\xdb\x9e\x5c\x13\xab\x1c\x47\x20\x41\xf3\x60\x7f\x25\xf2\x84\x46\x50" +
"\x09\x73\xce\x40\x55\x02\x68\xad\x0a\x87\x8c\x9b\x54\xd0\xc5\x31\x92\x4a\x42\xe5\xcd\x23\xeb\x40\x78\xa4\x7a\x8b" +
"\xbd\xb1\x62\x8b\x55\x85\x48\x3a\x47\x81\xa0\xc6\xf8\x8e\xa4\xf3\x31\xd5\x68\xf9\xc1\xf0\x92\x52\xc9\xb0\x88\xaa" +
"\x85\xe2\x8a\xa2\x71\x84\x53\xcd\x13\xaa\x17\x4e\x15\x5c\x8f\xbe\x75\x80\xc7\x9a\x4a\x56\x55\xd9\xef\x4e\xd7\xe3" +
"\xd5\x86\x90\x1a\x14\x52\x6c\x8a\x7c\x61\x2a\x2c\x36\xb3\x8c\x6a\x70\xba\x1e\xe1\xdd\x75\xdd\x78\x26\xa5\xb2\x32" +
"\xa1\x69\x5a\xe6\xd5\xa9\xb2\x5c\x28\xbb\x1e\xa1\x2b\xfc\x44\xd2\x79\x95\x73\xc6\xd7\x5c\x36\x91\x2e\x63\x24\x14" +
"\x65\x5c\x46\x1b\xcc\x71\x7d\xeb\xbc\xff\xc1\x97\x72\x59\x98\x86\x14\xa7\x99\x30\xe0\x20\xaa\x39\xc5\x31\x67\x0c" +
"\xa4\xef\x58\x9d\xbd\x85\xec\x91\xca\x9d\x47\x18\xdf\x01\xce\x2a\xb7\x3b\xc2\x29\xaf\x26\x66\x2a\x97\x05\x8d\x22" +
"\x6e\xef\x9c\x5e\x38\x6a\x74\x3d\xba\x0e\xfd\xda\x11\x17\x50\x3c\x05\xb8\x50\xa0\x42\x2a\x3a\xa2\xd3\xcd\x64\x19" +
"\x5b\x56\x84\xd3\x23\x71\xe3\x53\x24\xca\x8a\x5c\xde\x91\xe5\xe5\xd8\xae\x88\x0f\x11\x38\xdb\x64\x93\x08\x19\x1d" +
"\xf8\xce\x7a\x2b\x4f\x22\x1c\x8a\x8c\x33\xb4\x36\x32\x7a\x2b\x56\x9b\xd4\xef\x04\xb3\xbc\x2b\x1b\xeb\xad\x8d\x90" +
"\x8c\x81\x61\x0d\x26\x55\xd2\xf0\x39\xa0\xbf\x2f\xe0\x7a\x7b\xbc\x38\xda\x46\x5b\x3a\x2b\xc7\x07\xad\x84\xd9\x52" +
"\x90\x52\xb3\xc1\x58\x42\xfb\x04\xca\x22\x8c\x1b\x90\xa9\x86\xae\x57\x3c\x26\x5d\x8f\xac\x3e\xc5\xd2\x67\x1c\x96" +
"\xaf\xc2\x8e\x05\x06\x2f\x81\xa0\x09\xb5\x5c\x49\x1c\x70\x1d\x88\xf7\xca\xbb\x2c\xb0\x75\xf8\x96\x27\xbc\x53\x37" +
"\xc5\x6c\x34\xb9\xc9\x40\x2f\x50\xc8\xb5\xb1\xfb\xc8\xc6\x20\xd1\x5f\x2a\x4d\x41\xbb\x13\xb3\x92\x37\xe3\xd3\xd5" +
"\xd6\xf4\x64\x02\xcd\x53\xbb\xac\x8b\x1d\xdb\xd4\x64\x56\x9c\x45\x9a\x6e\xd3\xad\xaf\x84\xb2\x23\x4d\xde\x34\xa4" +
"\x7f\x6a\x49\xe7\x51\x7a\x3a\x26\x83\xab\x1b\xf1\xf5\x3a\x1c\x65\x47\x75\x4b\x9b\x0d\x45\xae\x87\xcf\x2f\xc2\xe6" +
"\xb7\xaa\x73\x63\x93\xe9\xf0\x96\x9d\x64\x9d\xf7\x5b\x52\xd7\x23\x4b\xd0\x3f\xcf\x20\xad\x42\x43\xea\x6e\xbd\xe5" +
"\xd6\xab\x85\xdd\x58\xdc\xdd\x37\x86\x10\xe8\x27\x7d\x45\x4f\xcc\x2c\x09\xd3\xe9\xd1\xd3\xed\xcd\xe5\xbd\xe8\xab" +
"\xc5\x30\x79\xb0\xd1\xa0\x77\x26\x59\x9f\x9b\xbb\xe0\xff\xca\xe2\xbd\xa9\x75\xf2\xf7\xa1\xf5\xdf\x29\x1d\xec\xd5" +
"\x1a\xaf\xd9\xc1\xc3\xc3\xd7\x9b\xe9\xe8\x30\xaf\xff\x79\xa9\xdb\xf3\xd0\x9e\x46\xc3\xf0\x9c\x3d\x07\x27\x17\xd0" +
"\xb7\xe7\x72\xf0\x6c\x7a\x66\x27\x4a\x3f\xcd\xe9\x9f\x46\xa0\xcd\xda\x6e\x64\x48\x2f\xe4\x97\xd3\x0b\x71\xa1\x1e" +
"\x79\xfc\xcc\x82\xf6\xfd\x79\x36\x39\x1c\x26\x57\xb5\xfb\x6f\xc1\x37\x33\x7c\x9a\x42\xff\x3c\x8f\x79\xed\xf5\x83" +
"\xc1\xe7\x43\x32\x34\x4d\x0b\x1c\x6f\x72\xe8\x91\x65\xab\xf7\xc8\xf2\x17\xda\x7f\x03\x00\x00\xff\xff\x0e\x55\x82" +
"\x06\xb2\x0d\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: 3506,
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, "/")...)...)
}