|
- // +build bindata
-
- // Copyright 2016 The Gitea Authors. All rights reserved.
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
-
- package public
-
- import (
- "fmt"
- "io/ioutil"
-
- "gitea.com/macaron/macaron"
- )
-
- // Static implements the macaron static handler for serving assets.
- func Static(opts *Options) macaron.Handler {
- opts.FileSystem = Assets
- // we don't need to pass the directory, because the directory var is only
- // used when in the options there is no FileSystem.
- return opts.staticHandler("")
- }
-
- func Dir(name string) ([]string, error) {
-
- files, err := AssetDir(name)
- if err != nil {
- return []string{}, fmt.Errorf("Failed to read embedded directory. %v", err)
- }
-
- return files, nil
- }
-
- func Asset(name string) ([]byte, error) {
- f, err := Assets.Open("/" + name)
- if err != nil {
- return nil, err
- }
- defer f.Close()
- return ioutil.ReadAll(f)
- }
-
- func AssetDir(dirName string) ([]string, error) {
- d, err := Assets.Open(dirName)
- if err != nil {
- return nil, err
- }
- defer d.Close()
-
- files, err := d.Readdir(-1)
- if err != nil {
- return nil, err
- }
- var results = make([]string, 0, len(files))
- for _, file := range files {
- results = append(results, file.Name())
- }
- return results, nil
- }
-
- func AssetNames() []string {
- realFS := Assets.(vfsgen۰FS)
- var results = make([]string, 0, len(realFS))
- for k := range realFS {
- results = append(results, k[1:])
- }
- return results
- }
-
- func AssetIsDir(name string) (bool, error) {
- if f, err := Assets.Open("/" + name); err != nil {
- return false, err
- } else {
- defer f.Close()
- if fi, err := f.Stat(); err != nil {
- return false, err
- } else {
- return fi.IsDir(), nil
- }
- }
- }
|