k3s/pkg/static/zz_generated_bindata.go

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