k3s/pkg/static/zz_generated_bindata.go

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