blob: df2cfa815fb336d06cefd068ff6584bc7eafff91 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Code generated by go-bindata.
// sources:
// wski18n/resources/de_DE.all.json
// wski18n/resources/en_US.all.json
// wski18n/resources/es_ES.all.json
// wski18n/resources/fr_FR.all.json
// wski18n/resources/it_IT.all.json
// wski18n/resources/ja_JA.all.json
// wski18n/resources/ko_KR.all.json
// wski18n/resources/pt_BR.all.json
// wski18n/resources/zh_Hans.all.json
// wski18n/resources/zh_Hant.all.json
// DO NOT EDIT!
package wski18n
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
}
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 _wski18nResourcesDe_deAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
func wski18nResourcesDe_deAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesDe_deAllJson,
"wski18n/resources/de_DE.all.json",
)
}
func wski18nResourcesDe_deAllJson() (*asset, error) {
bytes, err := wski18nResourcesDe_deAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1500156160, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _wski18nResourcesEn_usAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x58\x5f\x6f\xdb\x36\x10\x7f\xf7\xa7\x38\xf8\xc5\x19\xe0\xea\x03\x74\x4f\xc1\x66\xcc\xc1\xba\xc6\x58\x9d\xf5\x61\x19\x06\x5a\x3c\x47\x87\xc8\x3c\x95\xa4\x9c\xb9\x86\xbe\xfb\x70\x94\x5c\x67\x8d\x65\xfd\xb1\xda\xe5\xc9\x02\xcd\xfb\xdd\x8f\x77\xc7\xfb\xc3\x3f\x47\x00\xfb\x11\x00\xc0\x98\xf4\xf8\x2d\x8c\xef\x8c\x5a\xa5\x08\x9e\x41\x69\x0d\x96\x73\x8f\xc0\x99\x27\x36\x0e\x26\xfb\x7d\x54\x7d\x17\xc5\x64\x3c\x2d\xe5\xbc\x55\xc6\xa5\x4a\x96\x1b\x00\xde\xc2\x73\x80\xf1\x08\xa0\x98\xd6\xeb\x8f\x2d\x2a\x8f\x30\x5f\x2e\x17\x60\xf1\x53\x8e\xce\xc3\x9a\x2d\x2c\xee\x96\x81\x49\x80\x2e\x8a\x49\x40\x45\x6b\x8b\xa2\x91\x51\x0f\xc8\x9e\x24\x7f\x99\x0d\x4e\xf2\x0c\x64\x4f\x92\x3f\xcf\xde\xcd\x96\xb3\xa1\x79\x9e\x47\xed\xeb\xf4\xdb\x0f\xc3\x7b\xfd\x0c\x66\x03\x4d\x95\x65\x68\x74\xcd\xc5\x90\x0d\x77\xbf\xbf\xab\x62\xbf\x27\xe9\xcb\x35\xb4\xb3\xf4\xc1\x20\x02\x27\x40\xb9\x4d\x7b\x59\xb7\x11\xe7\x24\x9d\x1b\xb3\x55\x29\xe9\xbe\x2c\x5a\x8b\x9f\x54\x3e\xb3\x96\x2d\xa0\x89\x59\x93\x79\xf8\x02\xb2\x62\xbd\x6b\xd4\xdc\x4e\xf6\x8c\x5a\x32\xe4\x49\xa5\xf4\xf9\x99\x78\x4b\xad\x0d\xa2\x4d\xa1\xab\x35\xf8\xa4\xba\x0e\x2a\xf7\x09\x1a\x4f\x71\x50\x01\x09\x2a\x8d\xb6\x4b\x94\x76\x01\x3b\x49\xec\x3a\xf7\x09\x5b\xfa\x5c\xca\x3c\xe2\x0e\xc8\x81\x61\x0f\x31\x9b\x35\x3d\xe4\x16\x35\x5c\xbd\x79\x23\xd8\xf2\x8f\x1c\x97\x2c\xea\x1f\x6a\xa8\xf5\x86\x3b\x4d\xce\xc0\xf5\xe2\x06\x12\x76\x1e\x36\xb9\xf8\x17\x21\xb3\xbc\x25\x8d\x3a\xba\x37\x75\x1c\x1a\xa4\x5a\x38\xe8\xfb\xd7\xdd\x9f\x78\xb3\x51\x46\xc3\x5a\x51\x8a\x1a\x74\x5e\x42\x99\xd2\xb5\xb2\x9a\x5b\xac\x51\xdd\x4e\xf6\xa4\xda\xf7\x0c\x64\x3c\xda\xb5\x8a\x8f\x46\xfa\x11\x0c\x1f\xd2\xb5\xcb\xd8\x38\x0c\x17\x0b\xf0\x9f\x0c\x63\x8f\xba\x86\x46\x3f\xac\x6e\xd6\x08\x0a\x8c\x4a\xfb\x5a\xe4\x85\xfc\x49\xf5\xcb\x04\x61\xcd\x69\xca\x4f\x72\xc5\x55\x96\xa5\x87\x4b\x85\x21\x03\x3c\x29\x09\xdd\x18\x69\x8b\xba\xf1\xb6\xf6\x04\x7b\x7d\xf9\xfa\xd5\xe6\xb0\x23\x96\x1c\x28\x53\xd6\x95\x45\x79\x8b\xd6\x11\x9b\x6e\xf5\xb4\x05\xc4\x85\x3d\x69\xdf\x12\xdf\x1e\xb0\x3f\xc1\x61\x58\xb5\xa7\xb2\xca\x29\xfd\x4f\x3c\x76\x20\x70\x4e\xb6\x9d\x05\xc4\x80\x2f\xf8\x5f\xd6\xe5\x76\x81\x6c\x47\x52\x86\xa3\x81\x49\x76\x81\x6c\x47\xb2\x1a\x3a\x06\xe6\xd9\x11\xb5\xa5\x3d\x65\xec\x18\xda\xa0\x5d\x30\x6b\x32\x7b\x55\x98\x42\x51\x88\xe0\x90\xaa\x9d\x57\x5f\x1a\x89\x00\x18\x16\x8a\x62\x12\xc1\x1f\x61\xc3\xa1\x49\x51\x16\xe1\x7e\xac\x62\x4f\x5b\xbc\x1f\x83\x54\xbf\xfb\x31\x99\xc3\x42\x54\x5b\x12\xbe\xb5\xde\x06\xaf\x94\xb9\xf6\x50\x89\x7a\xb8\xa0\x11\xa0\x89\x80\xe5\x18\x9d\x0b\x08\x9f\x72\xb4\xbb\x9a\xbe\xaf\x0b\xa5\xee\x90\x27\x49\xee\xf7\xd1\xc6\x3d\x14\x05\x5c\xc5\xac\x51\x36\xcb\x6f\x51\xd4\x75\xdf\xf5\xfb\x6b\xdb\x9c\x98\x8d\xc1\x38\x78\xb9\x6c\x96\xa6\xc0\x16\x3c\x6d\x50\x03\xe7\x3e\x82\xab\x10\xd6\xe2\xfd\xdc\x41\x3b\x1a\x97\xe3\x76\x9e\x9d\xa7\xb0\xc2\x58\xe5\x0e\xe1\x36\x43\xf3\x31\x21\xf7\x78\x1c\x02\xc8\xc1\x86\x9c\x23\xf3\xd0\x63\x9a\x6e\x8b\x7c\x01\x65\xe9\x7e\x54\x46\x25\xa4\x44\x88\x7c\x14\xc5\x44\xe0\xa9\xbc\x8f\x17\x3d\x08\xf4\xd5\xd4\x70\x24\xac\xbe\xc4\xdb\x68\x3d\xad\xa5\x6b\x43\x88\x13\x8c\x1f\xa5\xd5\xad\xba\x6e\xf9\xdf\xa2\x72\x6c\x8e\xd0\xf5\xc3\xdb\x60\xf0\x97\x91\x3f\x9a\x6c\xc5\x3e\x01\x5e\xbf\xd8\x29\x89\x4e\xd6\x64\xc6\x95\x1c\x58\xc5\xc1\x00\x27\xbb\x48\xf7\xc9\x63\x9f\x8d\x5c\xb8\x5a\xa4\xa8\x1c\x1e\x47\x74\xf8\x38\xbf\xf9\xf0\xeb\xdf\xd7\x8b\x9b\xb9\xd4\x35\x32\x10\x3d\xb9\xc7\xcc\x72\xe6\x20\x37\x1a\x6d\x50\xee\x76\xce\xe3\x06\xe6\xb7\xbf\xcd\x40\x93\xc5\xd8\xb3\xdd\x45\x75\x39\xe1\xbb\x52\x18\xc4\x08\x4f\xb2\x37\x52\x19\x85\x4b\x12\x65\x96\x3d\x4f\xbf\x5e\x35\x6a\x53\xba\xe3\xeb\xdd\x6c\xbd\xb0\x2e\x97\x85\xb7\xb8\x0f\x9f\x93\xbf\x5d\xcc\xde\x97\xa7\xfc\x46\x26\xfc\x1f\x0f\x50\xfb\xd4\xf4\x6c\xb6\xab\x1e\x87\xea\xf9\x5f\xdf\x2d\xe7\xc3\x04\xdf\xf7\xd0\x3c\xc8\x91\x3d\x3a\x2f\x17\x39\xbc\x8f\x29\x17\x14\x66\xea\x98\x04\xd4\x4b\xbc\x35\xa5\x38\x74\xa4\xbd\x7a\xda\x62\xec\xd1\x5f\xa3\x7f\x03\x00\x00\xff\xff\x46\xb6\x0f\x2c\x3e\x1b\x00\x00")
func wski18nResourcesEn_usAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesEn_usAllJson,
"wski18n/resources/en_US.all.json",
)
}
func wski18nResourcesEn_usAllJson() (*asset, error) {
bytes, err := wski18nResourcesEn_usAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 6974, mode: os.FileMode(420), modTime: time.Unix(1506610567, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _wski18nResourcesEs_esAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
func wski18nResourcesEs_esAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesEs_esAllJson,
"wski18n/resources/es_ES.all.json",
)
}
func wski18nResourcesEs_esAllJson() (*asset, error) {
bytes, err := wski18nResourcesEs_esAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1500156160, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _wski18nResourcesFr_frAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
func wski18nResourcesFr_frAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesFr_frAllJson,
"wski18n/resources/fr_FR.all.json",
)
}
func wski18nResourcesFr_frAllJson() (*asset, error) {
bytes, err := wski18nResourcesFr_frAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1500156160, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _wski18nResourcesIt_itAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
func wski18nResourcesIt_itAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesIt_itAllJson,
"wski18n/resources/it_IT.all.json",
)
}
func wski18nResourcesIt_itAllJson() (*asset, error) {
bytes, err := wski18nResourcesIt_itAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1500156160, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _wski18nResourcesJa_jaAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
func wski18nResourcesJa_jaAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesJa_jaAllJson,
"wski18n/resources/ja_JA.all.json",
)
}
func wski18nResourcesJa_jaAllJson() (*asset, error) {
bytes, err := wski18nResourcesJa_jaAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1500156160, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _wski18nResourcesKo_krAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
func wski18nResourcesKo_krAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesKo_krAllJson,
"wski18n/resources/ko_KR.all.json",
)
}
func wski18nResourcesKo_krAllJson() (*asset, error) {
bytes, err := wski18nResourcesKo_krAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1500156160, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _wski18nResourcesPt_brAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
func wski18nResourcesPt_brAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesPt_brAllJson,
"wski18n/resources/pt_BR.all.json",
)
}
func wski18nResourcesPt_brAllJson() (*asset, error) {
bytes, err := wski18nResourcesPt_brAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1500156160, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _wski18nResourcesZh_hansAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
func wski18nResourcesZh_hansAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesZh_hansAllJson,
"wski18n/resources/zh_Hans.all.json",
)
}
func wski18nResourcesZh_hansAllJson() (*asset, error) {
bytes, err := wski18nResourcesZh_hansAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1500156160, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _wski18nResourcesZh_hantAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")
func wski18nResourcesZh_hantAllJsonBytes() ([]byte, error) {
return bindataRead(
_wski18nResourcesZh_hantAllJson,
"wski18n/resources/zh_Hant.all.json",
)
}
func wski18nResourcesZh_hantAllJson() (*asset, error) {
bytes, err := wski18nResourcesZh_hantAllJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1500156160, 0)}
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){
"wski18n/resources/de_DE.all.json": wski18nResourcesDe_deAllJson,
"wski18n/resources/en_US.all.json": wski18nResourcesEn_usAllJson,
"wski18n/resources/es_ES.all.json": wski18nResourcesEs_esAllJson,
"wski18n/resources/fr_FR.all.json": wski18nResourcesFr_frAllJson,
"wski18n/resources/it_IT.all.json": wski18nResourcesIt_itAllJson,
"wski18n/resources/ja_JA.all.json": wski18nResourcesJa_jaAllJson,
"wski18n/resources/ko_KR.all.json": wski18nResourcesKo_krAllJson,
"wski18n/resources/pt_BR.all.json": wski18nResourcesPt_brAllJson,
"wski18n/resources/zh_Hans.all.json": wski18nResourcesZh_hansAllJson,
"wski18n/resources/zh_Hant.all.json": wski18nResourcesZh_hantAllJson,
}
// 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{
"wski18n": &bintree{nil, map[string]*bintree{
"resources": &bintree{nil, map[string]*bintree{
"de_DE.all.json": &bintree{wski18nResourcesDe_deAllJson, map[string]*bintree{}},
"en_US.all.json": &bintree{wski18nResourcesEn_usAllJson, map[string]*bintree{}},
"es_ES.all.json": &bintree{wski18nResourcesEs_esAllJson, map[string]*bintree{}},
"fr_FR.all.json": &bintree{wski18nResourcesFr_frAllJson, map[string]*bintree{}},
"it_IT.all.json": &bintree{wski18nResourcesIt_itAllJson, map[string]*bintree{}},
"ja_JA.all.json": &bintree{wski18nResourcesJa_jaAllJson, map[string]*bintree{}},
"ko_KR.all.json": &bintree{wski18nResourcesKo_krAllJson, map[string]*bintree{}},
"pt_BR.all.json": &bintree{wski18nResourcesPt_brAllJson, map[string]*bintree{}},
"zh_Hans.all.json": &bintree{wski18nResourcesZh_hansAllJson, map[string]*bintree{}},
"zh_Hant.all.json": &bintree{wski18nResourcesZh_hantAllJson, 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, "/")...)...)
}