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