diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-04-12 18:16:45 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-12 18:16:45 +0800 |
commit | 50a72e7a83a16d183a264e969a73cdbc7fb808f4 (patch) | |
tree | 013456110621c36edb3fa0d1bb77906ba8d4e013 /modules/options/dynamic.go | |
parent | 42919ccb7cd32ab67d0878baf2bac6cd007899a8 (diff) | |
download | gitea-50a72e7a83a16d183a264e969a73cdbc7fb808f4.tar.gz gitea-50a72e7a83a16d183a264e969a73cdbc7fb808f4.zip |
Use a general approach to access custom/static/builtin assets (#24022)
The idea is to use a Layered Asset File-system (modules/assetfs/layered.go)
For example: when there are 2 layers: "custom", "builtin", when access
to asset "my/page.tmpl", the Layered Asset File-system will first try to
use "custom" assets, if not found, then use "builtin" assets.
This approach will hugely simplify a lot of code, make them testable.
Other changes:
* Simplify the AssetsHandlerFunc code
* Simplify the `gitea embedded` sub-command code
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'modules/options/dynamic.go')
-rw-r--r-- | modules/options/dynamic.go | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/modules/options/dynamic.go b/modules/options/dynamic.go index 3d6261983f..085492d11c 100644 --- a/modules/options/dynamic.go +++ b/modules/options/dynamic.go @@ -6,29 +6,10 @@ package options import ( + "code.gitea.io/gitea/modules/assetfs" "code.gitea.io/gitea/modules/setting" ) -// Dir returns all files from static or custom directory. -func Dir(name string) ([]string, error) { - if directories.Filled(name) { - return directories.Get(name), nil - } - - result, err := listLocalDirIfExist([]string{setting.CustomPath, setting.StaticRootPath}, "options", name) - if err != nil { - return nil, err - } - - return directories.AddAndGet(name, result), nil -} - -// fileFromOptionsDir is a helper to read files from custom or static path. -func fileFromOptionsDir(elems ...string) ([]byte, error) { - return readLocalFile([]string{setting.CustomPath, setting.StaticRootPath}, "options", elems...) -} - -// IsDynamic will return false when using embedded data (-tags bindata) -func IsDynamic() bool { - return true +func BuiltinAssets() *assetfs.Layer { + return assetfs.Local("builtin(static)", setting.StaticRootPath, "options") } |