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