k3s/pkg/static/zz_generated_bindata.go

275 lines
264 KiB
Go
Raw Normal View History

// Code generated for package static by go-bindata DO NOT EDIT. (@generated)
2019-03-20 00:27:44 +00:00
// sources:
// build/static/charts/traefik-19.0.400.tgz
// build/static/charts/traefik-crd-19.0.400.tgz
//go:build !no_stage
// +build !no_stage
2019-03-20 00:27:44 +00:00
package static
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 os.FileInfo
}
type bindataFileInfo struct {
name string
size int64
mode os.FileMode
modTime time.Time
}
// Name return file name
2019-03-20 00:27:44 +00:00
func (fi bindataFileInfo) Name() string {
return fi.name
}
// Size return file size
2019-03-20 00:27:44 +00:00
func (fi bindataFileInfo) Size() int64 {
return fi.size
}
// Mode return file mode
2019-03-20 00:27:44 +00:00
func (fi bindataFileInfo) Mode() os.FileMode {
return fi.mode
}
// Mode return file modify time
2019-03-20 00:27:44 +00:00
func (fi bindataFileInfo) ModTime() time.Time {
return fi.modTime
}
// IsDir return file whether a directory
2019-03-20 00:27:44 +00:00
func (fi bindataFileInfo) IsDir() bool {
return fi.mode&os.ModeDir != 0
2019-03-20 00:27:44 +00:00
}
// Sys return file is sys mode
2019-03-20 00:27:44 +00:00
func (fi bindataFileInfo) Sys() interface{} {
return nil
}
var _chartsTraefik190400Tgz = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x00\x0f\x40\xf0\xbf\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xec\x3d\xd9\x6e\x23\xc7\x76\x7e\xe6\x57\xd4\x25\x9d\xb1\x34\x12\x9b\x6c\xee\xec\xdc\x41\xae\x3c\x1a\x67\x04\xcf\x8c\x05\x69\x9c\x04\x30\x1c\xa9\xd8\x5d\x24\xdb\x6a\x76\x31\xbd\x68\xb1\x63\x20\x4f\x79\x0a\x92\x00\x37\x4f\x59\xe0\xc7\xdc\x00\xf9\x80\x7c\x4f\x7e\x20\xfe\x84\x9c\x73\xaa\xaa\x17\x92\x5a\x66\x48\xcb\xd7\x1c\x13\x63\x35\x59\x7b\x9f\x3a\x7b\x9d\x53\x4e\x22\x2e\xc6\xfe\x45\xe3\xa3\x9f\xf0\xd3\x84\x4f\xbf\xdb\xa5\x27\x7c\x16\x9f\xf4\xdd\x6e\xf7\xfb\xed\x4e\xaf\xad\xca\xfb\xed\x7e\xe7\x23\xd6\xfd\x29\x17\x65\x3e\x69\x9c\xf0\x88\xb1\xc7\x98\xea\x8f\xf1\x93\xe8\xfd\xb7\xa6\x22\x98\xf9\x93\x50\x46\x62\xe3\x73\xe0\x06\xf7\x3a\x9d\xdb\xf7\xbf\xdd\x2f\xef\xbf\x6d\x77\x5b\xbd\x8f\x58\x73\xe3\x2b\x59\xf1\xf9\xd0\xf7\x5f\xc4\x49\xdc\xa8\xb8\x91\x17\x37\x2e\x00\x16\x72\xe6\x7f\xcb\x13\x5f\x86\xd6\x0d\x9f\x05\x95\x9f\x7b\x79\xbf\x7e\x7e\xe2\x8f\xa1\xff\xe7\x53\x1e\x4e\x44\x20\x27\xd6\xcc\xdb\xf4\x1c\x77\xd2\x7f\xb7\x65\xf7\xba\xed\x45\xfa\xef\xb5\xec\x5f\xe9\xff\x31\x3e\x35\xa6\x76\x9e\xbd\x92\x93\x4a\xa5\x56\x63\xf6\xd0\x6a\x5a\x1d\x56\xa9\x3c\x7d\x7a\x22\x02\xc1\x63\xc1\x3c\x9e\x08\xe7\xe9\x53\xd6\x6a\xb6\x5a\x75\xdb\xae\x37\xfb\x95\xca\x6f\xbe\x3a\x98\xcf\xff\x42\x44\x31\xb0\x0a\x87\xb5\xac\xa1\xd5\xf9\x7a\x67\x9a\x24\xf3\xd8\x69\x34\xfc\xd9\xc4\x8a\xa7\xbe\x08\xbc\xd8\xf2\x65\x03\x20\x9c\xf8\x6e\xe3\xd2\xfe\xb3\x80\x8f\x44\xf0\x2c\xef\xf9\x64\x26\xe2\x98\x4f\xc4\x33\x1a\xe0\x89\x2b\x03\x19\x3d\x8b\x53\xd7\x85\xe2\x27\x80\x8c\xf2\xd9\x2e\xcc\xf4\x12\x44\x93\xc3\x2e\xdb\x0f\x9e\x00\x3b\x64\x43\x5f\xb6\xf5\xb8\x7e\x38\x96\xd1\x8c\x98\x1b\x0f\xd4\xe8\x28\xf4\x76\x2b\xf0\xae\xec\xc7\x1f\xfe\xe5\x3f\xd9\x81\xe7\xc5\x6c\x06\x22\x90\xc5\x22\x49\xfc\x70\x12\xb3\x27\x2c\x12\x21\x9f\x09\xb6\x73\x15\xc9\x70\xb2\xcb\x62\x37\xe2\x73\x71\x14\x26\x22\xba\xe4\x01\x4b\x24\xdb\x81\xa7\xef\xed\x32\xdf\x94\xc9\x90\x9d\xc2\x37\xdf\x15\xaf\x65\xe8\x27\x32\x62\x08\xd9\x1a\x3b\x14\x63\x9e\x06\x09\x83\x36\xa9\x60\x2e\xc1\x3d\xae\x54\xce\xcf\xcf\x3d\x7f\x3c\xae\xe0\x1f\x56\xaf\x4f\xfc\x84\xf1\x86\xa1\x4b\x6a\x1b\x13\x33\x66\xa3\x55\xa5\x15\x3f\xf4\xc4\x35\x1b\xb5\x3a\xae\xed\x8e\x2c\xab\x63\xb7\x39\x1f\x0c\x98\x4d\x34\x57\xa9\xd7\xeb\xab\x47\xab\xec\xed\xed\xdd\x32\xe2\xef\x7e\xc7\xea\xad\x9e\xbd\x6f\x37\xd9\x1e\x3e\x7b\x0c\x4a\x66\x22\x89\x7c\x37\x76\x2a\x0c\xde\x84\x01\x4c\x46\x81\x60\x72\xae\xa0\xc9\x9e\x9f\x1c\xc6\x0c\xc0\xcb\x8e\x23\x09\x2d\xa7\x22\x8d\xd9\x17\x73\x11\x71\x78\x7b\xec\x51\x61\x8c\x41\xb7\xb8\x04\x16\xa7\x52\xa7\x52\xc6\xb8\xe7\xf9\x6a\xa4\x57\xb8\x81\x71\x5e\xc3\x60\x54\xe9\xb0\x11\x8f\xb2\x22\xdc\x8e\x78\xce\x5d\xe1\xb0\x2a\x0f\x25\x4c\x16\xd5\xb3\xb2\xea\x72\xb3\x53\x40\x63\x17\xa7\x63\xdf\x7d\xaf\xd7\xc1\xf4\xeb\x00\x86\xe3\x7c\xb8\xd3\x0e\xfb\xea\xeb\xac\x96\xb1\x3a\x8b\x65\x1a\xb9\x42\xaf\x87\x7d\x75\x76\x86\x03\x9e\x9d\x15\x1b\xe1\x0b\xcd\x39\xbd\xa4\xc3\xfe\x54\xc1\xad\x3f\xdc\x1f\x02\xd8\xfa\xdd\x7d\xbb\x5f\x86\x5b\xa1\x5b\x24\xe6\x01\xac\x6c\x26\xc2\xc4\x61\x1f\xdb\xa5\x3a\xee\x26\x44\x53\xba\x4d\x56\xf7\x8d\x1c\xd1\x62\x1c\xa6\xf7\x2c\x7b\xd3\x32\x4a\x3a\xac\xdd\x8c\x17\xea\xde\xfa\x33\x21\x53\x98\xab\x1b\x57\xf6\x74\x8d\x5f\x6a\x6f\x66\x99\x4a\x50\x01\xcd\x4b\x27\x51\x2a\xb2\xf6\x35\xb6\xf3\x85\xde\xee\xdd\x42\xe1\xed\x13\xd4\xd4\x60\x58\x05\x04\x3a\x9b\x2f\x0f\xa8\xb0\xe8\x25\x10\x75\x6b\xa9\x6e\x2c\x83\x40\x5e\x9d\x08\xcf\x8f\x60\xf7\x96\xfb\x2e\xa3\x4c\x5e\x57\x40\x9a\xbc\xf0\x1e\xb4\x59\xd1\x70\x05\xe2\xcc\x33\xf4\x3e\x49\x03\x91\x6f\xea\xd2\x6a\x8a\xb8\x76\xcf\xcc\x40\xff\x39\xe7\x6d\xdf\xcd\x79\xdb\xdb\xc8\x79\xff\xf1\x0f\xec\x50\x86\x9f\x24\x80\xf2\x7f\x93\xc2\x76\x33\x71\x3d\x97\xb1\xf0\xd8\xb1\x8c\x92\x98\x5d\x4d\x45\xa8\x50\x05\xe8\x94\xbd\x4c\x47\x6c\xa7\xd6\x6f\x36\x77\x1f\xc6\x55\x6b\xec\x8d\x34\xa5\x80\xf3\x2c\x99\xfa\x31\x4c\x44\xf0\x2d\x83\xbe\xf5\xc1\x81\xde\x89\xe7\x42\xb8\xd3\xb3\x11\x07\x5a\xc3\x57\x3a\x4d\xe7\x73\x80\x39\xbb\x94\x41\x3a\x43\x29\xe8\x46\x02\x77\xc0\x4f\xa6\xec\x13\xeb\x13\x84\x9f\x12\x86\xb5\xde\xb0\xbb\xf1\x0d\xb0\x3f\xb8\x0d\xf8\xf1\x87\x7f\
2019-03-20 00:27:44 +00:00
func chartsTraefik190400TgzBytes() ([]byte, error) {
2019-03-20 00:27:44 +00:00
return bindataRead(
_chartsTraefik190400Tgz,
"charts/traefik-19.0.400.tgz",
2019-03-20 00:27:44 +00:00
)
}
func chartsTraefik190400Tgz() (*asset, error) {
bytes, err := chartsTraefik190400TgzBytes()
2019-03-20 00:27:44 +00:00
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "charts/traefik-19.0.400.tgz", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _chartsTraefikCrd190400Tgz = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x9b\x53\x73\x2e\x0c\x94\xac\x63\xdb\xb6\x9d\xec\xd8\xb6\x6d\xdb\x4e\x76\x6c\xdb\xb6\xdf\xd8\xb6\x9d\x1d\xdb\xb6\x9d\x9c\xaa\xaf\xce\xd4\xdc\xcd\xba\x59\xdd\xfd\x13\xba\x9e\x26\x8c\x86\x02\xfa\xef\x40\xaf\x7d\x6d\x5c\xb6\x38\x93\xf6\x7c\x5e\xea\x0c\x9b\x49\x57\x6e\xe0\xd5\x52\x4d\x27\x5e\x62\x28\xd9\x0f\x96\x9c\xbd\x75\x78\x5a\x75\xca\x95\x5f\xa7\x47\x47\x47\xd9\xab\x60\x68\xee\x87\x49\x6c\xa4\xd2\x8e\x2e\x36\x3f\x6f\xd3\x11\x03\xc0\x08\x81\x94\x10\x27\x1e\xe0\xee\x0b\x37\x8d\x03\x89\x58\x12\x25\x4d\x29\x1e\x12\xcb\x85\xf5\xc3\xdb\x82\xad\xb8\x71\xbf\xf7\x03\x37\x88\x9b\xdb\xea\x0c\x16\x7f\x0b\x97\x7f\x15\x7e\xf9\xb9\xfd\x3e\x5f\xde\x8e\x66\x98\xf9\x04\xb8\x79\xb9\xff\x3e\x87\xef\x3d\x8b\xc8\x8d\xdb\x02\xe8\x30\xad\x90\x78\x47\xcb\xf3\x8c\xa7\x62\x9f\x05\xba\x90\xad\xf8\x75\xa3\xc5\x9a\x77\x1d\xf6\x40\xfa\xb8\xb8\x1a\x6a\x7f\x01\x87\x6d\x2d\xcf\xfe\x6e\x6f\x2f\x67\x88\x03\xfb\x7e\xe5\x0b\x3b\x3f\x03\xab\x06\x74\x43\x06\x66\x59\xa1\x52\x5f\x0c\xed\xde\xcf\x57\xf2\xbf\x9f\x67\x0a\x43\x43\xfb\x13\xfb\xfb\x4d\x99\xd3\x65\x56\xed\xd3\xe7\xe7\x7f\xe1\xd6\xa2\x8a\xe8\xc6\x1d\x4c\x1d\xdd\xdf\xf9\x61\x6b\x93\x59\x15\x59\x59\x7d\x30\xa2\x43\x7d\x30\xb1\xc8\x9e\xe9\x0c\x18\xf7\x23\x35\x19\x8a\x1d\x69\x1c\x63\x2c\x48\xe2\x92\x73\x7e\x32\x7b\xbc\x31\xc0\x56\x13\x53\xde\x91\xfc\xa6\x48\xb9\xe0\x92\x17\x4c\xd1\xe7\x48\xb8\xa0\x2c\x6e\x83\x36\x0f\xaf\xd6\x57\xc5\xe7\x76\x7d\xff\xbc\xfe\x1e\xc7\x97\xdf\x0a\x7c\x73\xea\x4e\xbf\x7c\xc5\xce\x7e\xfb\xbb\x2a\x6f\xfe\x4a\x50\x4a\x38\x7c\x7c\xff\x62\x5d\xff\x35\xeb\xca\x83\x48\x27\xc9\xdb\x19\x67\xcd\x38\xd0\x02\xda\xd4\x3d\x12\x5a\x5b\x7b\x02\xc8\xce\x06\x4d\x70\xbf\x21\x3e\xdf\xf8\xf7\x76\x4f\x3c\x9a\xbd\xd8\xb3\x66\x85\xbf\xcf\x58\xb3\xe4\x50\x44\x2b\x4d\x92\xc6\x9a\x3f\xd8\x0b\x16\x9b\x15\xf3\xa6\x3a\x37\x23\x69\x21\xc4\xa7\x1b\x7b\xd1\x9e\xa0\x10\xfe\xc3\xda\x45\xfc\x9c\xf9\x41\xcf\xea\xf8\x75\xe9\xd0\x14\x27\x09\x67\x5b\xbf\xe5\x60\x4f\xff\x0d\x20\xc5\x7b\x79\xd8\x35\x69\x7e\x79\x46\x3c\xfc\x4b\xd3\x44\x27\xa7\xde\xb1\xa5\x47\xe4\xfa\xf8\x7b\x78\xa8\xe1\x70\xf1\xf5\xfb\x7c\xc9\x51\xe7\xfd\xf3\x8b\x65\xc7\x84\xc5\xfb\xc7\x4c\xf0\xad\xed\x2b\x69\x0a\xeb\x77\x32\xac\xcd\x7f\x5a\x91\xaa\x8b\xc7\xcb\x1d\x77\x94\x28\x29\x17\xb8\x35\x69\xa4\x74\x3a\x49\x8d\x3b\xf5\x36\xd0\xf9\x20\xa1\xa4\x33\x74\x7a\x44\xf6\x08\x44\xac\x33\x2b\x04\x13\x6c\x91\x6c\x76\x91\x2c\xca\x94\x3b\x63\xca\xd3\xb3\x2b\x6b\x7c\x82\x26\xc6\x9c\xa5\x74\x00\xf6\xfe\xd1\xf1\xcd\xfc\x0d\x66\x27\xa3\x2c\x49\xbf\x0f\x06\x13\x45\xdd\xa2\xc1\x07\x73\x18\x40\x15\x64\xa0\xd9\xcf\x5a\xf9\x07\xd7\xfa\x1c\xb5\x8f\x64\x90\x13\xbb\xb6\xd1\x62\x5d\x59\xfe\x7e\xd3\xe5\xac\x89\x8e\xec\x9f\x34\x26\x81\xec\x4c\x42\x21\xcf\xa9\x13\xa3\x93\xae\x17\x5e\xa8\xd6\x4f\xfa\xa8\x02\xe1\x3e\xf5\x77\x77\x8c\x7a\x65\x84\xf5\x63\xa1\x01\x8b\x67\x73\x94\xa8\xf6\x37\xbc\xdf\x64\x19\x34\xcc\x70\xfe\xfd\xa2\x23\xc8\x24\x36\xaf\x0a\x54\x41\x25\x1c\x5a\x84\x87\x04\x89\xf6\x4e\x04\x29\x01\xfc\xec\x42\xe8\x5e\x26\x04\x30\x1c\x52\xbe\x7e\xce\xaf\x17\x6f\x2d\x2f\x42\x50\x56\x89\xbe\x3c\x27\x54\x74\x13\x0f\x94\x51\xf4\x54\x68\xcc\xdf\xc0\xa0\x23\x6e\xa4\x01\xf4\x62\xca\xb7\xf3\x8b\x0b\x92\x02\x8e\x7f\x46\xcc\x17\x2c\xa1\x88\x65\x7f\x2b\x94\x46\x66\x88\xb0\x0f\xad\xec\x10\x18\x1d\xb3\xb6\x60\xfd\x80\xb4\x13\x79\x11\xc1\x99\xc6\x91\xe0\xb0\x67\x49\xfa\x02\xa5\xca\x9c\xa1\x93\x57\x92\x01\x70\x78\xf3\xaa\x46\x83\xc9\xbf\xa4\xe5\xef\x4c\x58\x53\x68\xe1\xd0\x8d\xd9\xa6\xe8\x33\x09\xc3\x7b\x73\x78\xe2\x19\x14\x8f\x9c\x5f\x3d\x58\xb8\xbd\x19\xf3\x12\x91\x0d\xc7\x2d\xcc\x43\x58\x86\xb1\x62\x68\x5b\x91\x96\xe4\x88\x7b\xa0\x4d\x86\xc4\x2b\x4c\x70\x7e\xe4\x9a\x23\xa3\x9e\x4b\xe4\xb8\x10\xf9\x49\x68\x4c\x38\x06\x94\xb7\x20\x22\x17\x0b\x3a\xe0\x64\xf9\x23\x30\xec\x23\x5e\xa2\xaa\x84\xf2\xea\x7f\x93\xcc\xa9\xc0\x26\x2c\x53\x42\x1f\x03\x25\xcb\x39\x8c\x10\x8a\xeb\x94\xb9\x40\x58\x11\x2c\x2f\x98\xed\x30\x91\x7a\xf2\xcb\xad\x5d\xcc\x18\x69\x5c\xcc\xc4\x68\x82\x91\x0f\x3b\xee\x41\x91\x6b\x4d\xc0\x13\xbc\x9c\xde\x43\xbd\x52\x0b\xa9\x90\x63\xe3\x91\x78\xd2\x05\xe2\xea\x40\xbe\xad\xb4\x63\xb8\x5f\xa0\x6f\x
func chartsTraefikCrd190400TgzBytes() ([]byte, error) {
return bindataRead(
_chartsTraefikCrd190400Tgz,
"charts/traefik-crd-19.0.400.tgz",
)
}
func chartsTraefikCrd190400Tgz() (*asset, error) {
bytes, err := chartsTraefikCrd190400TgzBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "charts/traefik-crd-19.0.400.tgz", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
2019-03-20 00:27:44 +00:00
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, 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){
"charts/traefik-19.0.400.tgz": chartsTraefik190400Tgz,
"charts/traefik-crd-19.0.400.tgz": chartsTraefikCrd190400Tgz,
2019-03-20 00:27:44 +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
//
2019-03-20 00:27:44 +00:00
// 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{
"charts": &bintree{nil, map[string]*bintree{
"traefik-19.0.400.tgz": &bintree{chartsTraefik190400Tgz, map[string]*bintree{}},
"traefik-crd-19.0.400.tgz": &bintree{chartsTraefikCrd190400Tgz, map[string]*bintree{}},
2019-03-20 00:27:44 +00:00
}},
}}
// 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, "/")...)...)
}