2016-06-10 17:27:27 +00:00
|
|
|
// Code generated by go-bindata.
|
|
|
|
// sources:
|
2016-06-10 21:18:44 +00:00
|
|
|
// assets/public/css/styles.css
|
|
|
|
// assets/public/js/application.js
|
2016-06-14 19:33:59 +00:00
|
|
|
// assets/templates/actions.tmpl
|
2016-06-10 21:38:52 +00:00
|
|
|
// assets/templates/base.tmpl
|
|
|
|
// assets/templates/listing.tmpl
|
2016-06-11 13:32:50 +00:00
|
|
|
// assets/templates/single.tmpl
|
2016-06-10 17:27:27 +00:00
|
|
|
// DO NOT EDIT!
|
|
|
|
|
2016-06-10 21:18:44 +00:00
|
|
|
package filemanager
|
2016-06-10 17:27:27 +00:00
|
|
|
|
|
|
|
import (
|
2016-06-21 15:19:54 +00:00
|
|
|
"bytes"
|
|
|
|
"compress/gzip"
|
2016-06-10 17:27:27 +00:00
|
|
|
"fmt"
|
2016-06-21 15:19:54 +00:00
|
|
|
"io"
|
2016-06-10 17:27:27 +00:00
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
2016-06-21 15:19:54 +00:00
|
|
|
"time"
|
2016-06-10 17:27:27 +00:00
|
|
|
)
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func bindataRead(data []byte, name string) ([]byte, error) {
|
|
|
|
gz, err := gzip.NewReader(bytes.NewBuffer(data))
|
2016-06-10 17:27:27 +00:00
|
|
|
if err != nil {
|
2016-06-21 15:19:54 +00:00
|
|
|
return nil, fmt.Errorf("Read %q: %v", name, err)
|
2016-06-10 17:27:27 +00:00
|
|
|
}
|
2016-06-21 15:19:54 +00:00
|
|
|
|
|
|
|
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
|
2016-06-10 17:27:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type asset struct {
|
|
|
|
bytes []byte
|
|
|
|
info os.FileInfo
|
|
|
|
}
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
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 _publicCssStylesCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x5b\x79\x6f\xdb\x48\x96\xff\x7f\x80\xf9\x0e\x35\x31\x1a\x89\x33\x22\x2d\xc9\x47\x12\x79\x07\x18\x6f\x8f\x7b\xda\x98\x24\xbd\x48\xb2\xd8\x1d\x04\x01\x58\x22\x8b\x52\xad\x49\x16\xc1\x22\x6d\x2b\xbd\xf9\xee\xfb\x5e\x5d\x2c\x92\x25\xd9\xd9\xdd\xee\xa8\x3b\x3a\xea\x78\xaf\xde\xf1\x7b\x47\x31\x27\x2f\xff\x44\x2a\xd1\x94\xb4\xe0\x5f\x59\x9c\x4a\x49\xee\x4e\xe3\x79\x7c\x4a\xfe\x9b\xbc\xbb\xf9\x44\xde\xf2\x94\x55\x92\xc1\xb7\x0d\x6f\xb7\xdd\x3a\x4e\x45\x79\x52\xb1\x54\x14\x54\x9e\x0c\xd7\xbd\x3c\xf9\xe3\x1f\xf0\x75\xf2\xf2\xe5\x1f\xff\x40\x5e\x92\x45\x4c\x3e\xb2\x96\x64\x2c\xa7\x5d\xd1\x92\x5c\x54\xf0\x17\x2d\x79\xb1\x23\xad\x20\x92\x56\x32\x92\xac\xe1\x79\xac\x66\x2f\x63\xf2\x6f\x0d\xbb\x63\x30\x89\xff\xf2\x91\xd0\x2a\x23\x37\xd7\xa4\x65\x0f\x2d\x91\x40\x81\xd0\xec\xbf\x3a\xd9\x12\x9a\xb7\xac\x81\x3d\xef\x80\x2f\x22\x1a\x0e\xf3\x69\xcb\x45\x45\xd2\x2d\xad\x36\x6c\xa6\xf6\x82\x3f\xf7\xc0\xad\xe8\x80\x3a\x97\x74\x5d\xf0\x6a\x43\x3a\x20\x46\xbe\x0a\x51\x2a\x7a\x8a\xd7\x6d\x5b\x16\xe4\x57\xf8\x0a\x7f\x90\xbd\x48\xb3\xb7\xf2\x98\xbb\xd4\xa3\x27\x70\x1c\xb5\x08\xbf\x44\xa5\x8c\x90\xb1\x08\x19\x8b\x34\x63\x2b\xb2\x98\xcf\x7f\xe8\x67\x2f\xfb\xd9\xf7\x6c\x7d\xcb\xdb\x27\xae\xf8\xe6\x4b\xf0\x03\x2b\xc5\x1d\x73\x12\x2c\x69\xb3\xe1\x55\xcf\xfe\x5a\x64\x3b\xcb\xbe\x1e\x5b\x91\xf9\xa5\xdb\x83\xfc\xfc\xe9\xdd\xdb\x73\x94\x40\x5d\xd0\x1d\xee\xc2\x2b\x8e\xb2\x92\x6a\xc9\x5f\xfe\xdf\xfe\x4c\x34\xff\xa3\x68\x1a\x96\xb6\x24\x59\x17\x22\xbd\x4d\x1c\x0b\x95\x68\x35\x1b\x2c\x03\x79\x37\xa0\xe4\x9d\x61\x92\x15\xac\x54\xaa\xaf\x50\xeb\xaf\x4f\xde\xc4\xdf\xb5\x51\x92\xb1\x96\xf2\x42\x26\x04\xbf\xc8\xae\x04\x71\xec\x12\xb3\xdb\x62\x7e\xb2\x58\xa8\xed\xd0\xa8\x7e\xe2\x0d\xcb\xc5\xc3\x77\xee\x5f\x52\x5e\xb9\xfd\x16\xbd\x0a\x68\xd3\xf2\xb4\x60\x33\x42\x25\xcf\xe0\xcd\xf0\x31\x23\x39\xdf\xa4\xb4\x46\x69\xab\xcf\x5d\x03\x83\xb9\x10\x60\xbc\x33\xb2\x65\x34\x53\xef\x9b\x46\x74\xf5\x8c\xe0\xe6\xf0\x37\xab\xba\x19\xa9\xe8\xdd\x8c\x48\xe0\x49\xad\x34\x27\xb1\x4a\x36\xec\xad\x88\x62\xf7\x72\x64\x2d\xe0\x6f\xee\x3c\xbc\x02\x9b\x67\xd1\x81\x63\x8d\x24\x0d\xee\xf7\xde\x7a\x33\xb9\x63\x78\x2c\x5a\x10\xf8\xba\xa9\x94\x62\x44\x4e\x92\xba\x11\x9b\x86\x49\xa9\x04\xf1\xe3\xb6\x11\x25\x1c\xca\xc8\x73\xa6\x84\xfb\x4b\xcd\x1a\xea\x49\xa7\xcb\xb8\x98\x91\x94\x56\x77\x14\x64\x62\xd7\xcf\xc8\x1d\x08\x4b\x4c\x4e\xe5\x33\x1d\xf2\x3b\xcb\x56\xa4\xd8\x02\x29\x50\xc9\x70\xc5\x41\x1f\xb2\xa0\x52\x0a\x90\x79\x45\xd6\x8d\xb8\x07\xc7\x96\x24\x07\xf6\x2d\x69\x84\x87\x44\x31\x9b\x38\xe0\x48\x01\x0f\x1a\x51\xc8\xd8\xf7\x44\xf6\x90\x02\xff\xa0\x40\xbe\xd9\x2a\x63\x45\xa8\x3a\x37\x70\x24\x47\x07\x5f\x81\xb8\x5f\x7c\xb6\xfb\x7c\x39\x9e\x9c\xb7\x12\x8e\x77\xbd\xe3\xc0\x7d\x35\xfb\x57\x59\x86\x22\x23\xc9\xe7\x2d\xcf\x32\x56\x7d\x49\x88\x6c\x77\x0a\xd0\x50\x9b\x35\x0c\x0e\xfc\xe6\x64\x31\xd7\x1c\xff\x0c\x22\x26\xed\x96\x91\xa4\x65\x25\xd0\x6b\x59\x32\xf5\xb2\x13\xe5\x1b\x33\xf2\x91\xe6\xb4\xe1\x33\xdf\x41\xc8\xbf\x90\xe5\xb2\x3f\x91\x25\x3f\x23\x76\xbb\x7d\xc7\xb1\xe8\xf3\x96\x57\xb7\xbf\x39\xd2\x18\xbd\xe0\x39\x37\x0d\x58\xf8\x9a\xa6\xb7\xe8\x55\x70\x0e\x08\x51\xe0\xb9\x4a\xcd\x14\xdc\x09\x66\x15\xc8\x91\x03\x05\x4f\x5b\xf6\x28\xfd\xea\x48\xad\x5e\x91\xb6\x81\x48\x50\xd3\x06\xa4\x36\xd6\xcc\x4d\x09\xf6\x0c\xbb\x36\xe0\xcd\x74\xcd\x0b\xde\xee\xd0\x4b\x72\x91\x42\xa4\xc9\xac\xac\x25\xb9\xdf\xb2\x0a\x19\xdc\x11\xd8\x06\x3c\x4a\x0a\x64\x81\x56\x1a\x91\x14\x67\x27\x5b\xd8\xa8\x01\xc5\x82\x58\x3d\xb6\x56\x7a\x14\xd4\xb2\xd2\x13\x0c\x9b\x60\x9e\x68\xf6\x43\xb0\xff\x84\xe1\xa5\x00\x5b\x2f\x00\x3e\x4a\x5a\x81\xa7\xfc\xe6\xd2\xb7\xc6\xf9\x98\x45\x4e\x6c\x4c\x83\x87\x77\xd4\xf5\xba\xf9\xdc\xf2\xb6\x60\x5f\x9c\x2e\x44\x03\x0e\x1b\xad\x45\xdb\x8a\x12\x62\x65\xfd\x40\x32\xf8\xcc\xb2\x7d\x1e\x82\x4c\x30\x38\x7b\x8b\xd9\x45\xb2\x16\x05\x2c\x57\x48\x65\x0d\xfa\xec\xcf\x87\x99\x58\x03\xde\x82\xab\xc2\x39\xfc\x94\xe0\xde\x78\xe6\xf9\x7c\xaf\x6f\xee\x39\xbe\xa6\x15\x24\x95\xe5\xd5\x80\x88\xe2\x1d\x00\xb0\x05\x64\x4b\xf7\x91\xb9\x83\xdd\x20\x97\x01\x8f\xde\x2e\x12\xb3\x4e\x65\x46\x40\x40\x87\x7f\x05\x5e\xf0\x96\x98\x00\x92\xa8\xb1\xc4\x04\
|
|
|
|
|
|
|
|
func publicCssStylesCssBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_publicCssStylesCss,
|
|
|
|
"public/css/styles.css",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2016-06-10 21:18:44 +00:00
|
|
|
func publicCssStylesCss() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := publicCssStylesCssBytes()
|
2016-06-10 17:27:27 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
info := bindataFileInfo{name: "public/css/styles.css", size: 14615, mode: os.FileMode(438), modTime: time.Unix(1465976770, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _publicJsApplicationJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x5a\xfb\x6f\xe3\x36\xf2\xff\x3d\x40\xfe\x07\xae\xbe\x05\x24\xa7\x8e\x93\xec\xf7\x80\x03\x2e\x75\x16\x69\xe2\x22\xc5\x65\x1f\xd8\x06\x87\x03\xf6\x51\x28\x16\x6d\xeb\x22\x8b\x3e\x8a\x4a\x36\xb8\xf5\xff\x7e\x33\xa4\x28\x93\x14\xf5\x48\x76\xaf\x15\x8a\xc6\x2b\xcd\x0c\x67\x3e\xf3\x14\xa9\xa0\x2c\x28\x29\x04\x4f\xe7\x22\x38\xdd\xdf\xdb\xdf\xbb\x8f\x39\x29\x68\x46\xe7\x82\x26\xbf\x0a\xba\x2e\xc8\x94\x7c\xf8\x24\x1f\x1d\x1d\x91\x73\xce\xe3\x47\xb2\xe1\x4c\x30\xf1\xb8\xa1\x64\x51\xe6\x73\x91\xb2\x9c\x08\x46\x38\x5d\xb3\x7b\x4a\xe2\x9c\x00\xfb\x9a\xe6\x62\x7f\x4f\x92\x4f\x6a\xf2\x89\x22\x99\xa9\xc7\x20\x58\xb3\x47\x15\xc7\x88\xfc\x67\x7f\x8f\xc0\x85\x5a\xa4\x40\x20\x56\x69\x31\x49\xf3\x84\x7e\x79\xbb\xa8\x89\x4e\x15\x4d\xba\x20\x51\x4a\x5e\x4c\xc9\xe1\x49\xcd\x87\x97\xe4\x29\x36\x59\x3a\xa7\x51\x3a\x26\x27\x9a\x7e\xbb\xbf\xb7\x1d\x64\xc6\x26\x8b\xe7\x7d\x76\x48\x1a\x8f\x21\x2c\x4b\x66\xd9\x98\xe4\xf4\x61\x96\x75\x5b\x23\x29\x87\xd8\xf2\x21\xfd\x04\xbc\x52\x62\xd3\x92\x4b\x36\x2f\xa5\x0e\x7e\x63\x0a\x9a\x27\x24\x26\x73\x56\x88\x72\x4d\xe8\x3d\x52\xc2\xed\x54\x80\x8b\x17\xfb\x7b\x9a\xdb\x30\x0d\x39\x2e\x24\xf9\xec\xde\xb1\x4d\xd0\x2f\x3b\x0f\x25\x9a\x35\x49\x8b\x4d\x2c\xe6\x2b\x49\x1e\x81\x9a\xe4\xa2\x2c\x04\x53\xec\x8a\x07\xad\xec\x50\x18\x14\x5a\x52\x21\xd5\x64\x77\x29\x85\x3f\xb9\x90\xb0\x7b\xd4\x03\xc2\x0b\x45\x65\x28\x96\xc7\x6b\x6a\x81\xcd\xa9\x42\x8c\xbc\xa7\xcb\xd9\x97\x4d\x14\x44\xaf\xfe\x06\xff\x7d\xfe\x3a\x39\x38\xfd\xf8\xb1\x38\x18\x05\xe4\x47\x82\x5c\xf0\x27\xc0\x1b\x1f\x3f\x4e\xf1\x4f\xf4\xe1\xf3\xe9\xa7\x83\xd1\xe4\xe0\x87\xd1\xd7\xcf\xf0\xff\x40\xfb\x87\x53\x51\xf2\x7c\x67\xb4\xd2\x54\xc7\x41\xc4\xe9\x98\x04\x3f\x9c\x04\xa6\xa1\x17\xab\x38\x5f\xd2\x02\xcc\xba\x2d\x85\x50\xee\x10\x2b\x4a\x32\x16\x27\x69\xbe\x84\xf8\x4a\xd7\x31\xaa\xbf\xbf\x57\xc5\x91\x61\xe6\x5c\x32\xdf\xb0\xeb\x8a\xd8\x30\xb6\x36\x34\x03\xcc\x68\x1d\x81\x18\x29\xa7\xbb\x07\x8c\xa7\xcb\x34\x8f\xb3\x1b\xc0\x1f\x9e\x56\x74\x10\x7c\x39\xe5\x57\x37\xaf\xaf\x65\x42\x23\xb1\x7e\x52\x88\xc7\x8c\x4e\xd8\x26\x9e\xa7\xe2\x11\x38\x8e\x6b\x8a\x82\x8a\x9b\x74\x4d\x59\x29\xa2\xa6\x12\xa6\x88\x5a\x38\xb0\x87\x3f\xa5\x64\x9e\xc5\x45\x31\x0d\xc0\x4a\xca\xd3\x38\x3b\x4c\xc1\xb1\x05\x29\x36\x69\x1e\x9c\xc5\xa5\x60\x9c\x82\x8b\x7e\x3a\x4a\xcf\xc2\xd3\xa6\x30\x57\x9f\x13\x1d\xfb\x63\xf2\xf2\xf8\x78\x54\x6b\x57\x79\xc6\xb4\xd7\xe7\x84\x3a\x99\xd1\x0d\x09\xcb\xe9\x30\xfc\x2f\x91\xd2\xac\x53\x9c\x33\x3e\x26\x2b\xb1\xd6\xd9\xad\xaa\x4d\x0b\x78\xe8\x09\x20\xe0\xc9\x6f\x82\x6e\xe0\x3e\xe0\x36\x3d\xdb\x41\x57\xd5\x83\x1d\x6a\x28\xf7\xd4\x7a\xea\x83\x41\x13\x60\xd1\xb0\x4a\xf5\x24\xa3\xf9\x52\xac\xc8\x14\x34\xb0\x3c\x64\xa4\xab\x93\xdf\x51\xa8\x4c\x4d\x0e\xb5\xa4\x70\x54\x6b\xb0\xc5\x1f\xdb\x9d\x29\x05\x05\x0f\x76\xd9\xe2\xc3\x41\x3d\x36\x82\xa8\x06\xa4\xf6\xa4\xb5\xc8\x22\xe5\x85\xf0\xaf\x81\x06\x4b\x0f\x38\xc6\x35\x70\x6c\x8d\xbe\xe0\x6c\x9e\xb1\x82\xda\x41\xb7\x85\xd8\x80\x2e\xf8\x6c\x91\x18\x4e\x8e\xc4\x9d\x93\x7a\xbd\x68\x20\xb3\xc3\x17\xda\xd6\xb1\x83\x8d\x99\x86\x1a\x22\x03\xc1\x2a\x0f\x16\x31\x98\x62\x24\x80\x2a\xe2\x0b\xc6\x21\xee\x97\xcb\x0c\x6b\x09\x16\xa1\x35\x4b\x28\x61\x0b\x72\x9f\xd2\x07\xd5\xf3\xf1\x57\xa3\xe2\xcb\x86\x61\x15\x9c\xb9\x2e\xbe\x75\x40\xd5\x15\x39\x0a\x51\xc6\x61\x96\x16\xa2\x8e\x21\x64\xc1\x1b\xaa\x86\x99\x3c\x55\xce\xfd\xfc\xf8\x6b\x12\x85\x15\x49\xb8\x4b\x6b\x74\x75\xb5\x16\x74\xc5\x50\xf0\x92\x86\x96\xd7\x9d\x52\x8c\x1e\xaa\x97\x9f\x4a\x72\x5d\x30\x1a\xde\xed\x64\x95\x00\x86\xbb\x46\xab\x7e\x40\x8e\x24\x19\xfd\x07\x50\xdd\x40\x79\x88\x7a\x8c\x77\xba\x86\xeb\x93\x2b\x29\xac\x90\x8e\x40\x2e\x22\xbb\xa0\xca\x43\xe5\x0c\x7b\x39\xd3\x23\x48\x7f\x0d\x8b\x58\x4e\x79\x22\xc2\x9a\xad\xea\x4b\x1d\x5c\xb8\x9a\xe3\x14\xad\x00\x16\x99\x00\x71\x0e\x2c\xb7\x54\xeb\x4c\x64\xaa\x20\xdd\x24\x4e\xaa\xe5\x8d\xc2\x42\xaa\xb5\x87\x66\x18\x2e\xfa\x3b\xc4\x6c\x99\x51\xb7\x5f\x38\x18\x5b\x5e\x7b\xc6\x22\xa8\xa8\xb9\x44\xd3\x1e\x35\xc3\x3a\x26\x0d\xf0\x34\xdb\x50\x20\x48\x33\xaa\x71\x97\xc9\xa5\xfc\x8d\xcf\x7a\x92\xaf\xad\xd8\x5b\xe8\x3f\xc0\x70\xc9\x1e\x26\x28\xce\x26\xfe\x70\xfc\x09\x46\x
|
2016-06-11 22:03:54 +00:00
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func publicJsApplicationJsBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_publicJsApplicationJs,
|
|
|
|
"public/js/application.js",
|
|
|
|
)
|
2016-06-10 17:27:27 +00:00
|
|
|
}
|
|
|
|
|
2016-06-10 21:18:44 +00:00
|
|
|
func publicJsApplicationJs() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := publicJsApplicationJsBytes()
|
2016-06-10 21:18:44 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
info := bindataFileInfo{name: "public/js/application.js", size: 10764, mode: os.FileMode(438), modTime: time.Unix(1466516757, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _templatesActionsTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\xd0\x41\x0a\x83\x30\x10\x05\xd0\xbd\xe0\x1d\x86\xec\x8b\x17\x88\xb9\x4a\x18\x9c\x2f\x0c\xc4\x49\xd1\x50\x17\xe2\xdd\x5b\xdb\x0a\x5d\xa5\xae\x12\xf8\x9f\xc7\xf0\xb7\x8d\x04\xa3\x1a\xc8\xf1\x50\x34\xdb\xe2\x68\xdf\xdb\xc6\x8b\x3e\x42\xdb\x10\x1d\x1f\x1a\x12\x2f\x4b\xff\x6d\x38\x52\xe9\x5d\xbe\xc3\x5c\xf0\x7a\x66\x13\x17\xcc\xca\xe9\xa6\xc3\x81\x84\x23\x8f\x6a\xd1\xb0\xfa\x4e\x83\xef\xfe\x81\x33\x8c\x27\xd4\xc8\x29\x0b\x22\x44\xcb\x35\x50\xf2\x6a\x29\xb3\xd4\xc8\x51\x13\xe2\x59\xbc\xc8\x22\xa1\x54\xef\xfc\x34\x7e\xb5\xf3\x7d\xad\x0d\x93\xf7\xc0\xcf\x00\x00\x00\xff\xff\xba\x84\x1c\xb7\x79\x01\x00\x00")
|
2016-06-10 21:18:44 +00:00
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func templatesActionsTmplBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_templatesActionsTmpl,
|
|
|
|
"templates/actions.tmpl",
|
|
|
|
)
|
2016-06-10 21:18:44 +00:00
|
|
|
}
|
|
|
|
|
2016-06-14 19:33:59 +00:00
|
|
|
func templatesActionsTmpl() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := templatesActionsTmplBytes()
|
2016-06-14 19:33:59 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
info := bindataFileInfo{name: "templates/actions.tmpl", size: 377, mode: os.FileMode(438), modTime: time.Unix(1465933577, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
2016-06-14 19:33:59 +00:00
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
var _templatesBaseTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x56\xd1\x6f\xdb\xb6\x13\x7e\xce\x0f\xf8\xfd\x0f\x1c\x31\xc0\x0e\x96\x50\x1e\xb0\xbd\xa4\x92\x87\x36\xc9\x80\x02\x69\x56\x34\xdd\xc3\x9e\x0c\x5a\x3c\x5b\x4c\x29\x52\x23\x29\xa7\x9e\xe1\xff\x7d\x47\x52\x8a\x14\xbb\x31\x50\x60\x41\x00\x53\xba\xe3\x77\x77\x1f\xbf\x3b\x2a\xff\xe1\xe6\x8f\xeb\xcf\x7f\x7d\xbc\x25\x95\xaf\xd5\xfc\xff\xff\xcb\xbb\xdf\xb3\xbc\x02\x2e\xc2\xe2\x2c\xf7\xd2\x2b\x98\xef\x76\xec\x9e\xd7\xb0\xdf\xe7\x59\x7a\x11\x6d\x35\x78\x4e\x34\xbe\x2f\xe8\x46\xc2\x53\x63\xac\xa7\xa4\x34\xda\x83\xf6\x05\x7d\x92\xc2\x57\x85\x80\x8d\x2c\xe1\x32\x3e\x5c\x10\xa9\xa5\x97\x5c\x5d\xba\x92\x2b\x28\x7e\x66\x33\x1a\x91\xce\x72\x25\xf5\x17\x52\x59\x58\x15\xb4\xf2\xbe\x71\x57\x59\xb6\x42\x20\xc7\xd6\xc6\xac\x15\xf0\x46\x3a\x56\x9a\x3a\x93\x08\xff\xdb\x8a\xd7\x52\x6d\x8b\x0f\xdc\x83\x45\xb4\x9f\xde\xe3\x4b\x47\x89\x05\x55\x50\xe7\xb7\x0a\x5c\x05\xe0\x8f\xa1\x27\x27\xa1\x4b\xe7\x7a\xe4\x4f\x66\x69\xbc\xb9\xfa\x65\x36\xbb\xf8\x75\x36\x9b\x44\xe4\xc9\x80\x3c\x21\x7e\xdb\x40\x31\xf1\xf0\xd5\x87\x6d\x93\x18\x89\x90\x14\xea\x30\x8d\xae\xac\xdd\x8e\xb0\x6b\xa3\x57\x72\xcd\xde\x71\x07\x7f\x7e\xba\x23\xfb\x7d\xb6\x58\x49\x05\x35\xd7\x7c\x8d\xa5\x20\x71\x56\x73\x15\x20\xb3\x04\xc0\x70\xd9\xd7\xe1\x4a\x2b\x1b\x4f\x9c\x2d\xbf\x0b\xec\xd1\x65\xbc\x69\x94\x2c\xb9\x97\x46\xb3\x47\xc4\xcb\xb3\x84\x95\x80\x11\x4b\xae\x88\x86\x67\xc4\x87\x10\xfa\x21\xe4\x4e\x28\x45\xdc\x3c\xe6\x32\x1f\xc5\x1c\x3c\x82\x22\x9e\xcd\xa0\x05\xba\x07\xfd\x64\xbd\x80\xf2\xa5\x11\x5b\x5c\x10\xfc\x8b\xaa\x02\xdb\x95\x23\xe4\x26\xad\x42\x02\x3f\x2a\x24\xee\xaa\x20\xec\xa3\x45\xbd\x98\xd6\xdd\x05\x26\x23\xd6\x38\xc3\xe8\x46\x29\x06\xe5\x03\xab\x68\x82\xbf\x3b\x53\x16\xf2\xcd\x76\x3b\x50\x0e\x70\xc5\x58\x86\xff\x28\xde\x31\xec\x7e\xff\x9c\x2a\x52\x81\x69\x90\x52\x71\xe7\x0a\xca\xcb\xc0\x10\x25\x52\x14\xb4\xc1\x0d\x68\x95\xbd\xad\xee\xb4\x76\x29\xa3\xd6\xe6\xae\x5d\x0a\x69\xa1\xf4\xc6\x6e\x17\xdc\x5a\xf3\xb4\x50\xb0\xf2\x79\x26\x91\xdd\x50\x5a\x9e\xf1\x48\x49\x4a\x24\xd5\x71\x1c\x8c\x08\xe9\xf8\x52\x81\xf8\x8f\xa2\x8e\x0f\x21\x04\x6c\xe6\xc7\x4c\x1d\x0a\x87\x76\x9c\xf5\xb9\x7e\x53\x5b\x23\xca\x7e\x47\x91\x91\x0f\x49\x65\xa1\x4a\x32\x08\x28\xcc\x88\x70\x08\x78\x40\xaf\xd6\x50\x56\xb0\xb1\x46\x2f\xac\x5c\x57\x31\xf3\xb0\x3f\xed\x0c\x62\x6a\x0e\x6a\x48\x75\x8d\x84\xca\xde\xbb\x1b\x69\x7b\xeb\xa0\xa2\x7c\x65\x6c\xdd\xad\xcf\x4e\x50\x08\xdc\x96\x55\x8c\x9b\x4b\xdd\xb4\x3e\xf5\x32\x0d\xbd\x4c\x49\xa3\x78\x09\x95\x51\x28\xd3\x82\x3e\x44\x57\xda\xe3\x67\xa3\x00\xaf\xc9\x26\x8c\xc1\x53\x07\x18\xec\x8b\xd0\x06\x38\x29\x60\x38\xb6\xd3\xa0\x6d\xa3\x0c\x17\xa7\x60\x43\xdf\x2f\x92\xdb\x01\xe8\x4b\xfa\xc6\x6a\xc4\x47\x0f\x35\x16\xec\xf1\xc8\x52\x38\x9c\xa1\x6c\x64\xee\x4f\x21\xf6\x6e\xf6\xdc\xbc\xc1\x3c\x3e\x8a\x6e\x47\xcc\x3e\xa4\xeb\x8d\x51\x4b\x6e\xe9\x51\x9f\xbf\x56\xdf\x92\x97\x5f\x4e\x55\x97\x84\x1e\xbc\x8e\x18\x43\x7d\xbb\x86\xeb\x08\xe3\x40\x61\x67\x80\xb8\xd4\x6d\xbd\x04\x8c\x3f\xc3\xd1\x84\xc6\x39\xe9\x2d\x2c\xc8\xeb\x1b\xb4\x9c\xe0\x61\x70\x1c\x11\xd2\x51\x52\x73\xa9\xbb\xd1\x46\xc8\x0b\x98\xee\x0e\x44\x98\x1b\x8e\x57\xe4\x40\x62\xb7\x25\xaa\xd5\xf8\x7e\x16\x3e\x80\xdd\x80\x20\x4f\xd2\x57\x04\xfb\x35\x5e\x20\xda\x98\x06\x34\x58\xa2\x0d\xb6\x2f\x58\x8b\x15\x1d\x5c\x90\x25\x17\x62\xeb\xc2\x5e\x1b\x2e\x30\x3a\xbf\x0e\x2f\x62\x4b\x72\xcc\xf4\x3b\x90\xd6\x18\xb9\x5d\xc6\x5b\xb0\xe2\xa5\x90\xdc\x25\xf0\xcb\xd1\x85\x72\xdc\xf8\x2c\x11\x34\xaa\xa4\xbf\xa3\x86\x96\xca\x1e\xf9\x86\xa7\xb7\x9d\x20\x56\xad\x4e\xa3\x4f\x19\xfc\x08\x90\xff\x00\x52\x04\x5e\xd6\x30\x85\xf0\x7d\x20\xe0\xeb\x05\xe1\xf6\x9c\xec\xd2\x11\xa3\xcc\xa6\xc0\x02\xd4\x75\x22\x95\x14\x45\x41\x5a\xf4\x5b\x61\x0b\x89\x67\xbf\x33\x0b\xbe\xb5\xfa\x4d\x7a\xea\xe6\xdf\x86\x5b\x22\x48\x81\xb3\xe9\x89\x84\x30\x88\xb4\x06\xff\xd6\x7b\x2b\x97\x2d\x3e\x4e\x44\x17\x7b\x72\x7e\xfe\x66\x88\x27\xdd\x3d\xbf\x9f\x8a\xf3\x01\xfc\x00\x64\x94\x4e\xbf\xef\x95\x8d\x2f\xd3\xea\xf3\xea\x7e\x0e\xea\x22\x82\x79\x73\x17\x58\x81\x07\xcc\x50\xaf\xa7\x1d\x78\x72\x0f\xc5\x84\x5c\xef\xa4\x0b\xce\x6f\xad\xe5\x5b\xd6\x58\xfc\x50\x09\x74\x33\x87\x57\x3c\x30\xdc\xac\xa6\xc2\x94\x6d\x
|
|
|
|
|
|
|
|
func templatesBaseTmplBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_templatesBaseTmpl,
|
|
|
|
"templates/base.tmpl",
|
|
|
|
)
|
2016-06-14 19:33:59 +00:00
|
|
|
}
|
|
|
|
|
2016-06-10 21:38:52 +00:00
|
|
|
func templatesBaseTmpl() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := templatesBaseTmplBytes()
|
2016-06-10 21:38:52 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
info := bindataFileInfo{name: "templates/base.tmpl", size: 2634, mode: os.FileMode(438), modTime: time.Unix(1465976767, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _templatesListingTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x93\x31\x6f\xea\x30\x14\x85\xe7\x20\xf1\x1f\x2c\x0f\x6f\x0b\x71\x78\x8f\x57\x89\x9a\x4c\x1d\x5a\xa9\x54\x55\x4b\x97\x2e\xc8\xc5\x37\x70\xa5\xc4\x41\xb6\xcb\xd0\x28\xff\xbd\x76\x4c\x20\xd0\x56\x65\xe2\x62\x9f\xf3\xdd\x73\x94\xa4\xae\x89\x84\x1c\x15\x10\xba\xaa\x94\x05\x65\x29\x69\x9a\xe1\x80\x4b\xdc\x91\x55\x21\x8c\x99\xd1\x02\x8d\x45\xb5\xa6\xd9\x70\x10\xf5\xcf\xbd\x41\x38\xab\xa6\x04\xe5\xa9\x2c\xaa\xeb\x98\x68\xa1\xd6\x40\x46\x77\x16\x4a\xe3\x99\xd1\x89\x1b\xdd\x71\x30\xd6\xf5\xe8\xe5\xe9\xbe\x69\x82\xb3\x15\x85\x29\xe2\x82\x6c\x34\xe4\x5f\x24\x81\x8f\xb9\x83\x9b\x1b\xd4\x01\xee\xf5\xd8\xd1\x4b\x61\x41\xa3\x28\x62\x74\x29\x0d\xcd\xf2\xaa\x90\xa0\x79\x82\x7d\x00\x14\x06\x2e\xf0\xa2\x32\xa0\xed\x52\x6a\xdc\xc1\x32\xc7\x02\xce\x31\x4a\x76\x14\x9e\x88\x7d\x89\xe4\xd0\xe2\xa2\x3e\xdc\x6c\x85\xea\x02\x28\x51\x02\xcd\x9c\xe6\xc1\x0d\x4d\xc3\x13\x7f\xf9\x4b\xf3\x2d\x91\xc2\x8a\xb8\xd2\xae\xe6\x8c\xc6\x29\xcd\xfe\x94\x52\x98\xcd\x35\x4f\xb6\x3f\x77\x3e\x75\xb9\x8d\xcf\xf8\x01\x3e\x96\x1b\x6f\xdf\x4b\xa1\xc2\xff\x73\xc6\xb1\xb0\x47\xec\x53\x6f\x50\x82\x78\x2b\x5c\x72\x6e\xb1\x04\x4f\x06\x3f\xb4\xdc\x16\x36\xaf\xe4\xc2\xdf\xd0\x31\x63\xff\x63\x96\xc6\x6c\xbc\x48\x27\x53\xf6\x6f\xca\x26\xaf\xb4\xbf\xf6\xa0\x64\x69\xc2\xc6\x89\xd7\x13\xf6\x37\x28\xc9\xe3\x9c\xc4\xec\x6a\xca\x18\xf5\xc9\xfc\x8a\xec\x18\xf0\x9b\x27\x70\x9c\xfa\xe1\xbb\xd3\xee\xd7\x7d\x09\xee\xaa\x7d\xf9\x3f\x03\x00\x00\xff\xff\x1a\xe7\x37\xe9\x15\x03\x00\x00")
|
2016-06-10 21:38:52 +00:00
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func templatesListingTmplBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_templatesListingTmpl,
|
|
|
|
"templates/listing.tmpl",
|
|
|
|
)
|
2016-06-10 21:38:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func templatesListingTmpl() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := templatesListingTmplBytes()
|
2016-06-10 17:27:27 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
info := bindataFileInfo{name: "templates/listing.tmpl", size: 789, mode: os.FileMode(438), modTime: time.Unix(1465976769, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _templatesSingleTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x90\x41\x0e\x82\x30\x10\x45\xf7\x24\xdc\x61\xd2\x03\xc0\x05\x0a\x2e\xdc\xba\x32\x7a\x80\x86\x0e\x64\x12\x28\xd8\x16\x8d\x21\xdc\xdd\x69\xb1\x44\x17\xba\x9c\x99\xf7\x5f\xf2\x67\x59\x40\x63\x4b\x06\x41\x34\xa3\xf1\x68\xbc\x80\x75\xcd\xb3\x3c\x93\x83\x22\x03\x4d\xaf\x9c\xab\xe2\x8d\x47\xb4\xa2\x0e\x37\x00\xce\x51\x0b\x78\x83\xe2\xf2\x9c\x38\x4c\x83\xea\x70\x8b\x02\x48\x1a\x3a\x70\xb6\xa9\x04\x63\xc5\xf5\x7c\xe2\xfd\xc1\xaa\x47\xe5\xed\x8c\xc1\x10\xf3\xd8\x3b\xfc\x96\xa8\x59\xd3\xb8\x4b\xe2\xf4\x57\x23\xcb\xc8\xfc\x16\xde\x49\xe3\x98\x0a\xed\xcc\xdb\x3f\x59\xac\x83\xf8\xb8\xf5\x66\x4a\x96\x61\x97\x48\xa3\xd3\x27\xca\xf0\x8a\x58\xfc\x63\xff\x0a\x00\x00\xff\xff\x01\xfd\x71\xfe\x3a\x01\x00\x00")
|
2016-06-11 22:03:54 +00:00
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func templatesSingleTmplBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_templatesSingleTmpl,
|
|
|
|
"templates/single.tmpl",
|
|
|
|
)
|
2016-06-10 17:27:27 +00:00
|
|
|
}
|
|
|
|
|
2016-06-11 13:32:50 +00:00
|
|
|
func templatesSingleTmpl() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := templatesSingleTmplBytes()
|
2016-06-11 13:32:50 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
info := bindataFileInfo{name: "templates/single.tmpl", size: 314, mode: os.FileMode(438), modTime: time.Unix(1465932482, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
2016-06-11 13:32:50 +00:00
|
|
|
}
|
|
|
|
|
2016-06-10 17:27:27 +00:00
|
|
|
// 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){
|
2016-06-10 21:18:44 +00:00
|
|
|
"public/css/styles.css": publicCssStylesCss,
|
|
|
|
"public/js/application.js": publicJsApplicationJs,
|
2016-06-14 19:33:59 +00:00
|
|
|
"templates/actions.tmpl": templatesActionsTmpl,
|
2016-06-10 21:38:52 +00:00
|
|
|
"templates/base.tmpl": templatesBaseTmpl,
|
|
|
|
"templates/listing.tmpl": templatesListingTmpl,
|
2016-06-11 13:32:50 +00:00
|
|
|
"templates/single.tmpl": templatesSingleTmpl,
|
2016-06-10 17:27:27 +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{
|
2016-06-10 21:18:44 +00:00
|
|
|
"public": &bintree{nil, map[string]*bintree{
|
|
|
|
"css": &bintree{nil, map[string]*bintree{
|
|
|
|
"styles.css": &bintree{publicCssStylesCss, map[string]*bintree{}},
|
|
|
|
}},
|
|
|
|
"js": &bintree{nil, map[string]*bintree{
|
|
|
|
"application.js": &bintree{publicJsApplicationJs, map[string]*bintree{}},
|
|
|
|
}},
|
|
|
|
}},
|
|
|
|
"templates": &bintree{nil, map[string]*bintree{
|
2016-06-14 19:33:59 +00:00
|
|
|
"actions.tmpl": &bintree{templatesActionsTmpl, map[string]*bintree{}},
|
2016-06-10 21:38:52 +00:00
|
|
|
"base.tmpl": &bintree{templatesBaseTmpl, map[string]*bintree{}},
|
|
|
|
"listing.tmpl": &bintree{templatesListingTmpl, map[string]*bintree{}},
|
2016-06-11 13:32:50 +00:00
|
|
|
"single.tmpl": &bintree{templatesSingleTmpl, map[string]*bintree{}},
|
2016-06-10 21:18:44 +00:00
|
|
|
}},
|
2016-06-10 17:27:27 +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, "/")...)...)
|
|
|
|
}
|
|
|
|
|