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