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