2016-04-06 11:31:22 -05:00
|
|
|
// Code generated by go-bindata.
|
|
|
|
// sources:
|
|
|
|
// web/css/pure-min.css
|
|
|
|
// web/index.html
|
|
|
|
// web/js/index.js
|
|
|
|
// web/js/ractive.min.js
|
|
|
|
// DO NOT EDIT!
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2016-04-19 10:47:47 -05:00
|
|
|
"bytes"
|
|
|
|
"compress/gzip"
|
2016-04-06 11:31:22 -05:00
|
|
|
"fmt"
|
2016-04-19 10:47:47 -05:00
|
|
|
"io"
|
2016-04-06 11:31:22 -05:00
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
2016-04-19 10:47:47 -05:00
|
|
|
"time"
|
2016-04-06 11:31:22 -05:00
|
|
|
)
|
|
|
|
|
2016-04-19 10:47:47 -05:00
|
|
|
func bindataRead(data []byte, name string) ([]byte, error) {
|
|
|
|
gz, err := gzip.NewReader(bytes.NewBuffer(data))
|
2016-04-06 11:31:22 -05:00
|
|
|
if err != nil {
|
2016-04-19 10:47:47 -05:00
|
|
|
return nil, fmt.Errorf("Read %q: %v", name, err)
|
2016-04-06 11:31:22 -05:00
|
|
|
}
|
2016-04-19 10:47:47 -05:00
|
|
|
|
|
|
|
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
|
2016-04-06 11:31:22 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
type asset struct {
|
|
|
|
bytes []byte
|
|
|
|
info os.FileInfo
|
|
|
|
}
|
|
|
|
|
2016-04-19 10:47:47 -05:00
|
|
|
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 _webCssPureMinCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xec\x3c\x59\x8f\xdc\x36\x93\xef\xfe\x15\x8a\x0d\x23\x33\x03\x49\x23\xa9\x6f\x09\x36\x36\x87\x93\xf5\x22\x09\x16\x48\x1e\x76\xe1\xcc\x02\x6c\x89\xdd\xad\x1d\x5d\x90\xd4\x73\xb8\xb7\xff\xfb\x16\x0f\x49\xbc\xd4\xdd\xe3\x7c\xfe\x90\x87\xcf\x0d\xc7\x22\x59\x2c\x16\xeb\x22\xab\x48\xe6\xf6\xe6\x9b\x57\xff\xb9\xaf\xb1\xf5\xe0\xb9\x73\xd7\x7b\xf5\x43\x59\x3d\xd7\xe9\x76\xd7\x5a\x81\xe7\x4f\xad\xff\x46\xbb\xb2\xfc\xc6\xfa\x58\xc4\xae\xf5\x5d\x96\x59\xb4\xa9\xb1\x6a\xdc\xe0\xfa\x01\x27\xee\xab\x5f\xd2\x18\x17\x0d\x4e\xac\x7d\x91\xe0\xda\x6a\x77\xd8\xfa\xfe\xf7\x1f\x2d\x5e\xed\xbe\xda\xb5\x6d\xd5\x84\xb7\xb7\xdb\xb4\xdd\xed\xd7\x6e\x5c\xe6\xb7\xcf\x04\xe7\x6d\x05\x83\xde\xae\xb3\x72\x7d\x9b\xa3\xa6\xc5\xf5\xed\x2f\x1f\x7f\xf8\xf0\xdb\xef\x1f\xdc\x3c\x79\x75\x73\xfb\x8a\xd0\x55\x94\x75\x8e\xb2\xf4\x33\x76\xe3\xa6\xb1\x1e\xfe\x67\xe2\x7a\xd6\xff\x59\xbf\x7e\xfc\xa3\x43\x0f\x25\xc0\xeb\xa6\xe5\x6d\x0f\x2a\x4c\xe0\x2a\xbe\xb6\x7e\x4b\xe3\x32\x43\x8d\xf5\x33\xca\x32\xb4\xdd\x01\x85\xa8\x48\xac\xff\x28\x0b\xd4\xee\x50\x61\xfd\x86\x51\xc6\x47\xb3\x94\xd1\x60\x30\x37\x38\x3b\x9c\x75\x73\xbb\x6b\xf3\xec\xb0\x29\x8b\xd6\xd9\xa0\x3c\xcd\x9e\xc3\x06\x15\x8d\x03\xfc\x49\x37\x91\x93\x37\x4e\x8b\x9f\x5a\xa7\x01\x58\x07\x25\xff\xbb\x6f\xda\xd0\xf7\xbc\xb7\x91\xf3\x88\xd7\xf7\x69\x6b\x6e\x3d\xae\xcb\xe4\xf9\x90\xa3\x7a\x9b\x16\xa1\x77\x44\x75\x9b\xc6\x19\xb6\x51\x93\x26\xd8\x4e\x70\x8b\xd2\xac\xb1\x37\xe9\x36\x46\x55\x9b\x96\x05\xf9\x04\x6e\xda\x9b\xb2\x04\x46\xda\x3b\x8c\x12\xf2\xcf\xb6\x2e\xf7\x95\x9d\xa3\xb4\xb0\x73\x5c\xec\xed\x02\x3d\xd8\x0d\x8e\x69\x8f\x66\x9f\x03\xfa\xe7\x43\x92\x36\x55\x86\x9e\x43\x10\x44\x7c\x7f\x44\xfb\x24\x2d\xed\x18\x15\x0f\xa8\xb1\xab\xba\xdc\x82\x9c\x1b\xfb\x01\x46\x2d\x7b\xc8\xb4\xc8\xd2\x02\x3b\xb4\x43\xf4\x80\x09\x69\x28\x73\x80\x19\xdb\x22\x5c\xa3\x06\x93\x56\x86\x28\x2c\xca\xf6\xea\x53\x0c\x9c\xa9\xcb\xac\xb9\xbb\xee\x51\x14\x65\x81\xa3\x1d\x26\x42\x82\xd9\x7d\xda\xa5\x49\x82\x8b\x3b\xbb\xc5\x39\x34\xb7\x58\x82\x3b\xa2\xc3\x1a\xc5\xf7\x64\x2e\x45\xe2\x80\x30\xcb\x3a\x6c\x6b\xe0\x70\x85\x6a\x5c\xb4\x47\x14\x22\x98\xd1\x03\x30\x27\xdc\x95\x40\xce\xa1\xdc\xb7\x84\x04\xc2\xb6\xf5\xba\xfe\xd4\xa6\x6d\x86\xef\x0e\xeb\xb2\x06\x9e\x38\xeb\xb2\x6d\xcb\x3c\xf4\xab\x27\x2b\x81\x4f\x9c\x1c\xd7\x76\x03\xe4\x15\x5b\x26\xc1\x47\x46\xd4\xc2\xf3\x8e\xc9\xa6\x60\x75\x4d\xfb\x9c\xe1\x30\x6d\x61\x8a\xf1\x71\xe7\xf3\x4a\x90\x58\x18\xe0\x3c\xe2\x42\x72\xe7\x0b\x9c\x5b\xde\x11\x8a\xf7\x02\xc1\xe1\x9b\xcd\xc6\x8b\x18\xd5\x6f\x3c\xc0\xda\x80\xda\x64\x02\x8a\x25\x08\xbb\xd9\x03\x11\xfb\x4a\xa8\x5d\xcc\xde\x46\x94\xcb\x1d\x93\xa2\xaa\x6c\x52\x22\xb8\xb0\xc6\xc0\x22\x98\xef\x28\xeb\x09\xa6\xb6\xac\x42\xc7\x9d\xe1\x9c\xe0\x3e\xf0\x49\x3b\x6e\x40\x6a\xd2\x7c\xcb\xb9\x01\x2c\x6a\x1e\xb6\x54\x4a\x61\x0d\xaa\x73\x7d\x20\x0c\xdc\x64\xe5\x63\xc8\x44\x72\x64\x7a\xd5\x29\xa2\x0f\x33\x9c\x7a\xd5\xd3\x71\x57\x1f\x9c\xbc\xfc\x0c\xdc\x7c\x22\xf4\xa6\xc5\x36\x24\x52\x06\x71\x90\xaa\x68\xa4\xba\x17\x78\x05\x28\xfb\x91\xd0\xbe\x2d\x8f\x71\x09\x7a\x7d\xbf\x4e\x40\xe7\xb0\xdd\xa0\xbc\x92\xec\x29\x2f\x8b\x12\xc4\x1d\x63\xbb\xff\x8a\x06\x5e\x01\x55\xc7\xf5\x1e\x66\x58\xd8\x69\x51\xed\x5b\xbb\xac\x5a\xa6\xf9\xc0\x10\xd0\x76\x9b\x58\x18\xe8\x0a\x3a\x30\x31\xa4\x05\x78\x81\xb4\xa5\x18\xfa\x42\x6f\x6a\x0c\xd3\x40\xde\x43\xda\xa4\xeb\x0c\x77\x23\x30\x94\x07\x6a\xb4\x54\x0b\x37\xe0\x08\x98\x9e\x72\x08\xe2\x0d\x2c\x4a\xc8\xa7\xf6\xb9\xc2\xef\x58\xf5\x9d\x2d\x54\x11\xe7\xd9\x4a\x35\x20\xa5\x3c\x6d\xef\x0e\x9d\x53\x40\x55\x85\x11\xa0\x8f\x71\xc8\xfa\x47\xf1\xbe\x6e\x80\xf8\xaa\x4c\x81\xa1\x35\x1f\xec\x13\x18\x0a\x02\xea\x92\x3b\x71\xd8\xbe\xf2\xc0\x3b\x25\x78\x83\xf6\x59\xcb\x3b\x85\x21\x95\xdd\xa6\x8c\xf7\x8d\x93\x16\x05\x78\x0a\xda\x4f\xaf\xef\xd5\x24\xaa\x50\x92\x10\x71\x7a\x47\x0a\x7a\x10\x75\x93\xb9\xc2\xa3\x30\x9b\x78\x87\xe3\x7b\x90\xb8\x3c\x69\x04\x1e\x81\xd8\x61\xaf\x1b\xbd\x49\x3e\xa9\xf8\x59\x8f\x62\x9f\xaf\x71\x7d\x07\x74\x71\xae\x50\xa2\x9c\xa6\x4a\x0b\x47\x14\xf8\x08\x34\xf8\x01\x19\xfa\xc0\x09\xa6\x1a\x27\x32\x1f\x58\x1d\xef\x8c\xcc\x27\x72\xde\xa4\x38\x4b\xa2\x53\xfa\xde\x75\x7c\x9
|
|
|
|
|
|
|
|
func webCssPureMinCssBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_webCssPureMinCss,
|
|
|
|
"web/css/pure-min.css",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2016-04-06 11:31:22 -05:00
|
|
|
func webCssPureMinCss() (*asset, error) {
|
2016-04-19 10:47:47 -05:00
|
|
|
bytes, err := webCssPureMinCssBytes()
|
2016-04-06 11:31:22 -05:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-04-22 15:39:06 -05:00
|
|
|
info := bindataFileInfo{name: "web/css/pure-min.css", size: 17286, mode: os.FileMode(436), modTime: time.Unix(1461095360, 0)}
|
2016-04-19 10:47:47 -05:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
2016-04-06 11:31:22 -05:00
|
|
|
|
2016-04-25 16:39:11 -05:00
|
|
|
var _webIndexHtml = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd4\x59\x5b\x8f\xdb\xb6\x12\x7e\xf6\xfe\x0a\x46\x8b\x13\x24\x39\x91\xb4\x7b\x72\xd2\x0d\x5c\x59\x6d\x8a\xa0\x40\x81\x24\x28\x9a\x22\x2f\x45\x1f\x68\x89\xb6\x98\xa5\x2e\x20\xa9\xbd\xc4\xf0\x7f\xef\xf0\x26\x51\xb2\xe4\x75\x12\x20\x40\x9f\x56\x1c\x0e\x67\x3e\xce\xcc\x37\x24\xbd\xc9\xa3\xbc\xce\xe4\x7d\x43\x50\x21\x4b\x96\x9e\x25\xea\x0f\x62\xb8\xda\xae\x02\x52\x05\x4a\x40\x70\x9e\x9e\x2d\x92\x92\x48\x8c\xb2\x02\x73\x41\xe4\x2a\x68\xe5\x26\x7c\x15\x74\xf2\x0a\x97\x64\x15\xdc\x50\x72\xdb\xd4\x5c\x06\x28\xab\x2b\x49\x2a\xd0\xbb\xa5\xb9\x2c\x56\x39\xb9\xa1\x19\x09\xf5\xe0\x39\xa2\x15\x95\x14\xb3\x50\x64\x98\x91\xd5\x65\x74\x31\xb6\x93\x13\x91\x71\xda\x48\x5a\x57\x9e\xa9\xdf\x78\x5d\x89\x92\xca\x02\x85\xe8\x35\x12\xb4\x6c\x18\x79\x8e\x8c\x26\xca\x39\xbd\x21\x95\x56\xa6\x55\x5b\xb7\x02\xbc\x48\xb2\xe5\x58\x19\x41\xb2\xae\x19\x38\x01\x2f\x92\x4a\x46\xd2\x6f\x34\x95\xc4\xc6\x8c\x32\xc8\x68\x75\x8d\x38\x61\xab\x40\xc8\x7b\x46\x44\x41\x08\xec\xbf\xe0\x64\xb3\x0a\xe2\x4c\x88\xb8\x69\x39\x09\x4b\x5a\x45\x30\x30\x18\xb4\x22\x6c\x79\x11\x29\x1f\x98\x56\x84\xa3\x1d\x0c\x17\x0d\xce\x73\x5a\x6d\x43\x4e\xb7\x85\x5c\xa2\xcb\x97\xcd\xdd\x8f\xbe\x9c\x91\x8d\x2f\x2e\x31\xdf\xd2\xca\x69\xe3\x56\xd6\xbe\xd8\x28\x3b\xe9\x1e\x1c\x2f\x7e\x2e\x49\x4e\x31\x7a\x02\x68\x4c\x2e\x96\xe8\xea\x87\x57\xcd\xdd\x53\xe3\x7e\x0c\x67\x8c\xe7\xff\x17\xd6\xf1\x08\x50\x27\xdf\x3b\x47\x51\x06\x19\x23\x3c\x5c\xb3\x3a\xbb\x36\xc6\x72\x2a\x1a\x86\xef\x97\x48\xcb\xe6\x81\xce\xec\xca\x98\x95\xe4\x4e\x86\xc6\xb6\xb1\xaa\x05\x98\xd1\x6d\xb5\x44\x46\xde\x29\xc7\xcf\x24\x5e\x43\x42\x9e\xc5\x66\xa9\x1a\x84\x9c\x88\x06\x52\x0f\x09\x36\xeb\xbf\x04\xc2\xa2\xbe\x21\x7c\xc3\xea\xdb\xf0\xee\x00\xd7\xd8\xb8\x16\x18\x17\x36\xd0\x97\x17\x17\xff\xb1\xc6\xef\xc2\x91\xcc\xe2\x45\x84\xf3\x9a\x23\x00\x0c\x26\xcd\xf7\x30\x74\xb4\x82\x6a\x23\x61\x1f\xc1\x35\xce\xae\xb7\xbc\x6e\xab\x3c\xcc\x6a\x56\xf3\x25\x54\x62\xae\x67\xec\xf0\xb6\xa0\x92\x18\xd5\x9a\xe7\x90\x11\x8e\x73\xda\x0a\xc8\xd9\xb0\xb4\x96\x28\x7a\x49\x4a\x74\x49\x4a\x2f\x00\x0a\xa0\x51\x73\x00\xd7\x1c\x9a\x41\xc6\xdb\x72\x2d\x90\x89\xeb\xb9\x2f\xf2\x43\xba\xae\xa5\xac\xcb\x91\x89\xa8\xd7\x0e\x05\x69\x30\x70\xca\x6d\xd2\x02\x3e\xcf\xb2\x4c\x43\xd8\x40\x2d\x86\xb7\xc4\xa4\x60\x5d\xb3\xbc\x97\x0a\xfa\x99\x2c\xd1\xff\x0c\x56\xb0\xab\x0c\x37\x2d\x63\x3a\x8d\xc6\x1a\xa4\x09\xc3\x3a\x25\x30\x4a\x4e\x45\xe7\x74\xa0\xa3\x25\x56\x49\xe7\x92\x96\x44\x48\x5c\x36\x56\xab\xf7\x18\x5d\xbd\xb4\xf1\x71\x60\xaf\xae\xae\x0e\x2b\x79\xb8\x63\x56\x6f\x27\x4a\x6d\x86\xc3\x4e\xdc\x2f\x4d\x51\xc3\xa7\x6a\xb5\xd7\x5c\x24\xb1\x6d\x28\x49\x6c\x7a\x75\xb2\xae\xf3\x7b\xf8\x63\xfb\x19\xcd\x57\x81\x7c\x07\xbc\x0e\x90\x6a\xf4\x30\x00\xd2\xc4\x1c\x67\x12\x2a\x55\x75\xf8\x9c\xde\xa0\x8c\x61\x21\x56\x41\xdf\x01\x74\xdb\xda\xea\xce\xec\xcd\x6b\x69\x1b\x5e\x2a\xf9\x22\x29\x5e\x38\xb9\x47\xcc\x40\x77\x57\xf4\x41\xb5\x57\x40\xf4\x42\x69\xee\x76\xe7\x74\x63\xca\x7b\xaf\x72\x31\xb0\x39\x58\xab\xdb\x4b\x22\x1a\x5c\xb9\x69\xbd\x2a\x48\x77\x3b\xbb\x1c\xb6\x0b\xb3\x5a\x31\x89\xc1\x8c\xb1\x1f\xd3\x8d\xb6\xac\x0d\xab\x1d\x7b\x75\x19\x0c\xd0\x97\xa4\x6a\x51\xf7\x15\x16\x35\xa7\x9f\xd5\xae\x19\x3a\x00\x92\xb4\xec\x60\x69\xc8\xa8\x90\x0e\x27\xa3\x87\xf3\x40\xb8\xd2\xce\x2f\x12\xec\x4e\x82\x43\x0c\xa1\x3a\x39\x82\xf4\x77\x5e\x7f\x22\x99\x44\x6f\xc1\x6c\x12\x63\x6b\x38\x66\xd4\x7c\x99\xc8\x35\x46\xc9\xc4\xee\x04\xbf\xc3\x08\x4e\x91\x2e\x48\x63\x2f\x90\xbe\x47\xeb\xf2\x11\x34\x3b\xa1\x0e\xbc\xc7\x8f\xd1\xa3\xac\xe5\x1c\xe2\xf2\x41\xe2\x2d\x71\x20\xe6\x51\xf8\xd1\xc5\x22\xcc\x0a\xca\x72\x58\x1e\xa0\x9c\x64\xb5\xf6\xbe\x0a\xd4\x6c\x87\xb6\x8f\xd3\x79\xa0\x93\x67\xf7\xfb\x4e\x29\xcd\x05\x6e\xb7\xb3\x5a\x91\xba\x34\xa8\xba\xc0\xbd\xbd\xa9\xc4\x75\x38\x3a\xb5\x13\x02\x39\x02\x37\x8d\x05\xd5\x55\x98\x31\x9a\x5d\x43\x31\x03\x93\xb7\x84\xff\xd2\x82\xaf\x20\xfd\xd3\x8c\x90\x1e\xfa\x00\xfd\x78\xab\x41\xcb\xba\xcc\xf9\x89\x20\x4c\x9c\x10\xef\x89\x38\xc6\x36\x36\x71\x1f\x25\x9a\xef\xf7\x5f\x13\xcc\x01\x20\x47\xb3\xf1\xb7\x57\xa4\xaa\x60\x6c\xed\x7c\x9f\x7a\x3d\xc1\xfa\x03\x61\x81\x61\x87\xf8\x48\x88\x3a\x9d\x3e\x3a\x3e\x51\x1f\x8
|
2016-04-19 10:47:47 -05:00
|
|
|
|
|
|
|
func webIndexHtmlBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_webIndexHtml,
|
|
|
|
"web/index.html",
|
|
|
|
)
|
2016-04-06 11:31:22 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
func webIndexHtml() (*asset, error) {
|
2016-04-19 10:47:47 -05:00
|
|
|
bytes, err := webIndexHtmlBytes()
|
2016-04-06 11:31:22 -05:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-04-25 16:39:11 -05:00
|
|
|
info := bindataFileInfo{name: "web/index.html", size: 6282, mode: os.FileMode(436), modTime: time.Unix(1461620307, 0)}
|
2016-04-19 10:47:47 -05:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
2016-04-06 11:31:22 -05:00
|
|
|
|
2016-04-25 14:41:03 -05:00
|
|
|
var _webJsIndexJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xcc\x3a\xeb\x72\xdb\x36\xd6\xff\xfd\x14\x30\xbf\x99\x8a\x4e\x64\xca\x49\x3b\xdf\xee\xd8\x71\x3a\xae\xa5\xb6\xde\xca\x97\xb1\x9c\x6c\x77\x32\x99\x0c\x24\x42\x12\x53\x8a\x50\x40\xd0\xa9\xa6\xd5\xbb\xef\x39\x00\x28\x02\x20\x29\xcb\x8d\xdb\x2d\x7f\xd8\x14\x71\xee\x77\x80\xec\xf5\xc8\x39\x5f\xae\x44\x32\x9b\x4b\xf2\xf2\xe8\xc5\xff\x93\xbb\x64\x41\x46\x73\x9a\x65\x3c\x8b\xc8\x59\x9a\x12\xb5\x96\x13\xc1\x72\x26\xee\x59\x1c\xed\x01\xce\x9b\x9c\x11\x3e\x25\x72\x9e\xe4\x24\xe7\x85\x98\x30\x32\xe1\x31\x23\xf0\x73\xc6\xef\x99\xc8\x58\x4c\xc6\x2b\x58\x67\xe4\xf2\xe2\x8e\xa4\xc9\x84\x65\x39\x43\x4c\x39\xa7\x92\x4c\x68\x46\xc6\x8c\x4c\x79\x91\xc5\x24\xc9\x14\xdc\xf0\xe2\x7c\x70\x35\x1a\x90\x69\x92\x32\xe0\xf1\x8c\x7c\xcc\xe7\x49\x26\x09\xc9\xa5\x48\x26\xf2\x98\x48\x51\x30\xf2\xac\xb7\xb7\x77\x4b\x27\x32\xb9\x67\x51\x7f\xf0\xdd\x9b\x1f\xc8\x29\x99\xd2\x34\x67\x27\x7b\x7b\xe1\xb4\xc8\x60\x85\x67\xe1\x01\xf9\x6d\x8f\xc0\x15\x14\x20\xa7\xc6\x0f\x00\x00\x1f\xdd\x53\x41\x04\x20\x65\xec\x33\x31\x84\x42\x0d\x8c\x17\x4b\x8f\x49\x30\xe6\xf1\x2a\xe8\x6e\x9e\x49\xb6\x58\xa6\x54\x32\x58\xf9\x3f\x79\x49\x93\xcc\x5a\x8b\xa9\xa4\xc7\xa4\xc6\xb7\xbc\x04\x93\x85\xc8\xbc\x87\x78\x2d\x05\xff\xc8\x50\xa9\xac\x48\xd3\x6e\x6d\x19\x2c\x98\x03\xbd\xb6\xe5\x5c\xd2\x19\xcb\xdb\x56\x27\x85\x10\x2c\x93\x23\x04\x6a\x83\x49\xf9\xac\x15\xdf\xc8\x06\xeb\xef\xde\xd7\x57\x99\x10\x5c\xb4\xa1\x4e\xb9\x58\x50\xd9\x57\xc6\xaa\xee\xeb\x70\x82\xa5\x8c\xe6\xa8\xc2\x6f\x6b\x77\x75\x7d\xb2\xf9\x69\xad\xc4\x6c\xc2\x05\x95\x5c\x20\x86\x03\xbf\x60\x59\x61\x39\x20\x83\x20\xf4\x9d\x80\x17\x7a\xfb\xa6\x10\xac\x2f\xf8\x32\xe6\x9f\x0d\xe0\x49\x83\x60\x2d\x0e\xc3\x4b\x32\x2a\x10\x79\x8b\xc3\xeb\xb4\xea\x3c\x3c\xdd\x1a\x34\xf7\x20\xcc\xed\xfa\xc0\x84\x70\xce\xe4\x0d\x95\xf3\x3c\xc4\x07\xea\x89\x88\x40\x96\x4a\x92\x00\x22\x7e\x36\x63\xe2\xbb\x22\x49\xe3\xc0\x12\x97\xdd\x43\x60\xf8\x32\xab\x87\x11\x07\x94\x24\xa3\x69\xb4\x14\xea\x41\x9f\x4d\x69\x91\xca\xd0\x33\x12\xa6\x4f\xce\x26\xa0\x1b\xe4\xd0\xe7\x24\x03\x7b\x00\x06\x5f\x2c\x65\x18\xdc\x28\xa7\x12\x40\x66\x42\xa5\xb4\x11\xa3\x44\x80\x88\xd0\x15\xa3\x8c\xfe\xc0\x23\x6e\x8b\x1d\x8a\x68\xc6\x80\xa8\x81\x8d\x92\x38\x38\xe8\x1a\x4a\x07\xb5\x20\x59\x6f\x4c\x51\xea\xea\x12\x33\x54\x2e\xfa\x1b\x12\x96\x11\xe8\x47\xfa\x2b\x48\x7f\x3d\xba\x0b\xba\x24\xe8\x19\xc4\x5e\x40\x9e\x13\x0b\xaf\xee\x68\x4d\xe9\xd8\xfc\x6f\xf3\x9e\x2d\x54\x08\x45\x14\x8c\xda\x14\x35\xc6\x96\x29\x9f\x50\x25\xfe\x29\x48\x12\xb4\x86\xc4\x8e\x44\x45\x94\xa3\x0d\x55\xce\x82\x6e\xf0\xbf\x04\x8e\x16\x2c\xcf\xa1\x40\x78\x1e\x58\x9b\xdf\x6b\xdf\x9a\x55\xcc\x59\x6c\x30\x18\x96\xf8\xb4\x8a\x85\x52\xfe\x08\x9f\x67\x74\xc1\xa2\x7c\x99\x26\x20\x43\x2f\x28\xc3\x17\xaf\x64\x4a\x42\x85\x19\xa5\x2c\x9b\xc9\x39\x79\x75\x4a\x5e\xf8\x1a\x80\xff\x6f\x4c\x2d\xf2\xc3\xd0\xcf\xad\xb5\x43\x79\x5f\x91\x7e\xf7\xe2\xfd\x17\x51\xac\x0b\x0b\x14\xc9\x29\x38\xc6\x44\x45\xe0\x93\xaf\x00\x5f\xd6\x58\xbb\xeb\x5f\x37\xae\xbb\x30\xdf\xb4\xc2\x18\x55\x54\x85\xdf\x30\xec\x92\x92\x74\x79\x07\x04\x5a\xaa\x4f\xe3\x53\xa0\xf8\x56\xf7\x9d\x06\x9a\x0d\x94\xea\x54\x2a\xf3\x56\x66\xf0\xe2\xeb\x09\xdc\xe1\x05\x75\x80\x71\x49\xae\xb8\xd4\xe3\xc4\x7e\xd0\x16\xc2\x0e\x37\xcb\xb2\xaa\xcc\xf4\xa0\x23\xf6\x82\x47\x27\x18\x96\xb4\x10\xd3\x20\x81\x14\x38\x3a\x81\x7f\xaf\x88\x86\x8e\x70\x34\x30\xd1\x0d\xcf\x9f\x3f\x6f\x73\x66\xae\x1c\x29\x8b\x3c\xb4\x10\xdf\x25\x6d\xbe\x9b\xd3\xfc\x56\x77\x4f\x0f\x1e\x2a\x24\x18\xc3\x2f\xa9\x9e\xed\x2a\xf3\x56\x32\xe6\x5c\xc8\x6a\x74\xa2\x5d\x32\xde\x16\x9b\x34\xc2\xac\x26\xaf\xc9\x58\xdd\x3c\xdc\x00\xc9\x8b\xc7\x04\xa1\xc5\xe2\xd5\xee\x2c\x0e\x1f\xc5\xc3\x20\x1d\x35\x58\xaa\x69\x24\xd0\xe1\x56\x4e\x45\x10\x71\x96\xf1\xec\x9a\x56\x5e\xa6\x12\x02\x16\x8c\xd2\x8c\x17\x32\xb4\x22\xaf\x4b\x5e\x1c\xc1\xe5\xa7\xc5\x5f\x5a\xd9\x6d\x16\x76\xce\x26\x71\x4b\x5a\x40\x23\x84\xe0\xfa\x83\x22\x96\xc5\xd2\xb7\x9b\x0f\x8e\x9e\xb7\xc3\xd2\xcc\xc0\x79\x9b\xfb\x1f\x4a\xbd\x12\x7f\x97\x1c\xc4\xab\x39\xb1\x54\x56\x35\x91\xc5\x8c\x33\xf7\x3b\x57\xd9\xf5\xdf\xc8\xe9\x65\xa9\x47\xfd\x4a\x3d\xb6\x78\x1f\xfe\x04\xea\xd6\xc0\x3e\x5a\x76\xd5\x97\x2d\x43\x9
|
2016-04-19 10:47:47 -05:00
|
|
|
|
|
|
|
func webJsIndexJsBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_webJsIndexJs,
|
|
|
|
"web/js/index.js",
|
|
|
|
)
|
2016-04-06 11:31:22 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
func webJsIndexJs() (*asset, error) {
|
2016-04-19 10:47:47 -05:00
|
|
|
bytes, err := webJsIndexJsBytes()
|
2016-04-06 11:31:22 -05:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-04-25 14:41:03 -05:00
|
|
|
info := bindataFileInfo{name: "web/js/index.js", size: 12768, mode: os.FileMode(436), modTime: time.Unix(1461613222, 0)}
|
2016-04-19 10:47:47 -05:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
2016-04-06 11:31:22 -05:00
|
|
|
|
2016-04-19 10:47:47 -05:00
|
|
|
var _webJsRactiveMinJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\xfd\x77\x7b\xdb\x56\x9a\x30\x0e\xff\xff\x7c\x0a\x12\x93\x95\x89\x21\x44\x5b\x99\x9d\xe7\x7d\x17\x0c\xcc\xc7\x71\x49\x1c\xc7\x25\x2e\x69\x0a\x47\x81\xc8\x43\x11\x31\x09\x30\x00\xa8\x12\x89\xf3\xd9\x7f\x77\x39\xe5\x3e\x00\x28\x2b\xbb\xd9\xeb\x4a\x2c\x02\x38\xbd\xdc\xbd\xf4\x17\xdb\x7c\x56\x67\x45\x3e\xa8\x23\x15\x5e\x07\xc5\xe9\x6f\x6a\x56\x07\x49\x52\x5f\x6d\x54\xb1\xe8\xa9\xcb\x4d\x51\xd6\xd5\xc1\x41\xb0\xcd\xe7\x6a\x91\xe5\x6a\x1e\xf4\xcd\xc7\x75\x31\xdf\xae\xd4\x84\xff\x8c\x74\xd1\x44\x0d\xc2\x38\x30\xcd\xba\x96\xb8\xf6\xc1\x01\xff\x1d\xa5\xeb\xf9\x84\x7f\x0e\x54\x18\xd7\xa3\xb7\x29\x94\x3f\x57\x58\x7b\x37\xa8\x97\x59\x15\xd9\x91\xc1\xb0\xb6\x95\xea\x55\x75\x99\xc1\xd0\xc6\xe6\x7d\xaf\x1e\xd4\xe1\xf5\x79\x5a\xf6\xd4\x38\x5b\x0c\x6a\x18\xe3\x69\x51\xac\x54\x9a\xbb\x11\xd6\x61\xa9\xea\x6d\x99\x77\x8d\xfe\x22\xcb\xe7\xc5\x05\x0c\xa8\x98\x6d\xd7\x2a\x87\xfa\xf5\xa4\x1e\xe5\xc5\x5c\xbd\x87\x02\x93\x3a\x0e\xb0\xc7\xfc\xcc\x4d\x01\x8a\x0c\x54\x62\xca\x8f\xce\x54\xfd\x74\xa5\xf0\xe7\x97\x57\xcf\xe7\x30\x98\xa8\xaf\x5c\x73\xa3\xdf\xb7\xaa\xbc\x7a\xa7\x56\xb0\x9e\x45\xe9\xd7\xf4\x3e\x41\xc5\x30\x82\x8a\xca\xf6\x1d\x4e\x54\x5c\x1f\x3f\x98\xc2\x88\xe0\x5f\x31\x24\x78\x8a\xf3\xed\x6a\x45\xff\xec\xec\x42\x28\x5c\x08\x9e\x28\x8e\x11\x26\xfb\x31\x2f\x2e\xe4\x32\x8c\x36\x69\x09\x1d\xbf\x82\x96\xa0\xd1\xbd\x4f\xa3\x52\xad\x8b\x73\xf5\x78\x99\xad\x68\x3e\xb5\xeb\x23\x17\x7d\x60\xef\xd0\x36\xd6\xad\x8b\x77\xb4\x48\xb8\x5c\x81\x2b\x9d\x61\xe9\x05\xcc\x8d\xb6\x27\x49\xcb\x33\x9a\x78\x35\x5a\xa9\xfc\xac\x5e\x46\x79\xf2\xa8\x2c\xd3\xab\x81\x7a\x78\x34\x51\x87\x47\xf1\x83\x30\xca\x92\xa3\xb1\x7a\x98\x8d\xb3\xe1\x30\xcc\x8f\xb3\xc3\xa3\xa9\xab\x76\x9c\x4d\xc7\xa6\xb5\x32\xaa\xc6\x55\x92\x8f\xaa\x65\xb6\xa8\x07\xe1\x38\xc4\x0f\x65\x2f\xcb\x7b\x55\xf8\x3a\x1d\xcd\xd2\xd5\x6a\x50\x45\x65\x08\x2b\x5e\x1f\x97\xd3\xa4\x82\x7f\xc2\xb1\x59\x1d\x37\xc4\xf2\xaf\x1f\xa2\x59\x9e\x11\x34\xfb\x34\x9d\x2d\x07\xf6\x08\x2b\xd7\x55\x8e\x43\x55\x61\x5f\x8d\x96\x69\xf5\xfa\x22\x7f\x53\x16\x1b\x55\xd6\x57\x83\x3c\xbc\xb9\xa1\x8f\xf5\xcd\x0d\x0c\x3d\x9f\x26\x0a\xfe\x09\x77\xde\x36\x54\x6e\x1b\x82\x63\xbe\xac\x3d\x1a\xe7\x14\x8e\x69\xf2\x46\xcf\xbf\x0e\x5d\x8d\x42\x6c\xdc\xfb\x74\x54\xab\xaa\x1e\xb8\x72\xa2\x60\xca\x20\x40\xec\x31\xb4\x08\x9b\xac\x7f\xa9\x49\xff\x41\xdc\x82\x0f\x30\xd6\x36\xcc\x98\xf4\x8f\xe2\x1a\xab\xb8\xc6\xb7\x6e\x14\xfd\xac\x7a\x95\xbe\x1a\xc0\xa9\xab\xd4\xb3\x55\x91\xe2\x35\x86\xdd\xca\xaa\x67\x59\x9e\xd5\xca\x1b\xfc\xb2\x71\xb2\xcd\x94\x5f\xd3\x9f\xbd\x73\x9e\x79\x53\xa9\xe1\x58\x6f\x56\xe9\x4c\x0d\xee\xff\x47\x75\xff\x4c\x02\x16\x5d\x42\x99\xd3\xb4\x13\x8d\xac\xfe\xfa\x03\x52\x2f\xcb\xe2\xa2\x57\x27\x38\xbe\x3c\x8c\x72\x75\xd1\x7b\x5a\x96\x04\x02\x5c\xbf\x0b\x18\xd7\x77\xa7\xa3\x27\x4f\xbf\xfc\xf0\xd5\xc1\xc1\xa3\x74\x94\x6e\x36\x2b\x38\x1e\xb0\x0d\x91\x6d\x4d\x94\x9f\xff\x2f\x8c\xd3\x8c\xf0\x5d\x4a\x7f\x5d\x67\x9b\xff\xc5\xce\xde\xa6\xc7\xf5\x14\xce\x3e\xfd\x4d\xfa\x0f\x4c\xef\xa2\xfb\xb5\xb7\x36\xf3\x4f\x2d\xcd\xb9\x57\x7c\xf3\xa9\xe2\x67\x78\x6c\xa0\x43\x42\x2a\x59\x72\xa5\x1f\xcd\xbd\xce\x26\x19\x0c\x0c\xee\x64\x03\xfc\x9a\x72\xb4\x2e\x63\x35\x0e\xaf\x01\x1d\xf1\x35\x87\xf2\xa1\x39\x63\x88\xa4\xd4\x28\xab\x8a\x55\x5a\xab\x79\x28\xee\xd9\x18\xd0\x9e\x86\xc2\x3b\xd7\xec\xa9\x38\xfb\xed\x23\x2b\x4b\x5e\x58\x44\x18\xe5\x51\x16\x01\x84\x8c\x0a\x82\x97\x2a\xa9\x47\xd5\x66\x95\xd5\x83\x60\x14\x84\xd1\x20\x4f\x7e\x48\x8f\x95\xde\xab\x29\xc0\x1b\x78\x73\x39\x30\x2f\x00\x0d\x55\xc9\xf1\x14\x36\x4c\x10\x05\xb9\xeb\x71\x12\xfc\x3d\x88\x11\x26\xed\xa2\x12\x00\x30\x57\x1a\x97\x87\x87\xe3\xb0\x48\x72\x00\xb3\xa3\x75\xba\x19\x64\xe1\xe8\xb7\x22\xcb\xb9\xc7\xaa\x09\xe4\x0a\xec\xb4\x1a\x6d\xb6\xd5\x12\x7e\x47\xd5\x71\x81\x3b\x6d\x97\xb8\x72\x93\xba\xec\x98\x54\x94\x46\xdb\x68\x99\x04\x01\xae\x65\xff\x07\x3c\x27\xbc\xea\x19\x8c\x7b\xbc\xd4\x43\xfa\xa2\x1e\x87\xcb\x21\x9c\x3a\x5e\x02\x02\x34\xcf\xf3\x7a\xb0\x8c\x3e\x0f\x61\xe4\x6e\x72\x16\x92\x1e\x21\x20\xa9\x77\x30\xfd\x07\x70\x54\x13\x40\x30\x50\x9d\x5b\xce\x93\xca\x22\xb9\xc1\xe7\xe1\x38\x17\x9d\xe4\x49\xf0\x20\x18\xe6\xd4\xcf\x
|
|
|
|
|
|
|
|
func webJsRactiveMinJsBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_webJsRactiveMinJs,
|
|
|
|
"web/js/ractive.min.js",
|
|
|
|
)
|
2016-04-06 11:31:22 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
func webJsRactiveMinJs() (*asset, error) {
|
2016-04-19 10:47:47 -05:00
|
|
|
bytes, err := webJsRactiveMinJsBytes()
|
2016-04-06 11:31:22 -05:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-04-22 15:39:06 -05:00
|
|
|
info := bindataFileInfo{name: "web/js/ractive.min.js", size: 165209, mode: os.FileMode(436), modTime: time.Unix(1461095360, 0)}
|
2016-04-19 10:47:47 -05:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
2016-04-06 11:31:22 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
// 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){
|
|
|
|
"web/css/pure-min.css": webCssPureMinCss,
|
|
|
|
"web/index.html": webIndexHtml,
|
|
|
|
"web/js/index.js": webJsIndexJs,
|
|
|
|
"web/js/ractive.min.js": webJsRactiveMinJs,
|
|
|
|
}
|
|
|
|
|
|
|
|
// 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{
|
|
|
|
"web": &bintree{nil, map[string]*bintree{
|
|
|
|
"css": &bintree{nil, map[string]*bintree{
|
|
|
|
"pure-min.css": &bintree{webCssPureMinCss, map[string]*bintree{}},
|
|
|
|
}},
|
|
|
|
"index.html": &bintree{webIndexHtml, map[string]*bintree{}},
|
|
|
|
"js": &bintree{nil, map[string]*bintree{
|
|
|
|
"index.js": &bintree{webJsIndexJs, map[string]*bintree{}},
|
|
|
|
"ractive.min.js": &bintree{webJsRactiveMinJs, 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, "/")...)...)
|
|
|
|
}
|
|
|
|
|