summaryrefslogtreecommitdiffstats
path: root/modules/public
diff options
context:
space:
mode:
authorguillep2k <18600385+guillep2k@users.noreply.github.com>2020-02-01 23:17:44 -0300
committerGitHub <noreply@github.com>2020-02-02 10:17:44 +0800
commitbcb52aef09160c1057baa97b9275e8fb63587b12 (patch)
tree30aa80530dc41a0a742a2eac87dd2141b4cfe621 /modules/public
parent9b9dd19d7dfe826789f0690f84d9f59470ad9e82 (diff)
downloadgitea-bcb52aef09160c1057baa97b9275e8fb63587b12.tar.gz
gitea-bcb52aef09160c1057baa97b9275e8fb63587b12.zip
Implement "embedded" command to extract static resources (#9982)
* draft * Implement extract command * Fix nits and force args on extract * Add !bindata stub, support Windows, fmt * fix vendored flag * Remove leading slash for matching * Add docs * Fix typos * Add embedded view command Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'modules/public')
-rw-r--r--modules/public/static.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/modules/public/static.go b/modules/public/static.go
index 3e8865c3f9..76050632c9 100644
--- a/modules/public/static.go
+++ b/modules/public/static.go
@@ -7,6 +7,8 @@
package public
import (
+ "io/ioutil"
+
"gitea.com/macaron/macaron"
)
@@ -17,3 +19,34 @@ func Static(opts *Options) macaron.Handler {
// used when in the options there is no FileSystem.
return opts.staticHandler("")
}
+
+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 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
+ }
+ }
+}