mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-25 03:22:36 +00:00 
			
		
		
		
	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>
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2022 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package options
 | |
| 
 | |
| import (
 | |
| 	"code.gitea.io/gitea/modules/assetfs"
 | |
| 	"code.gitea.io/gitea/modules/setting"
 | |
| )
 | |
| 
 | |
| func CustomAssets() *assetfs.Layer {
 | |
| 	return assetfs.Local("custom", setting.CustomPath, "options")
 | |
| }
 | |
| 
 | |
| func AssetFS() *assetfs.LayeredFS {
 | |
| 	return assetfs.Layered(CustomAssets(), BuiltinAssets())
 | |
| }
 | |
| 
 | |
| // Locale reads the content of a specific locale from static/bindata or custom path.
 | |
| func Locale(name string) ([]byte, error) {
 | |
| 	return AssetFS().ReadFile("locale", name)
 | |
| }
 | |
| 
 | |
| // Readme reads the content of a specific readme from static/bindata or custom path.
 | |
| func Readme(name string) ([]byte, error) {
 | |
| 	return AssetFS().ReadFile("readme", name)
 | |
| }
 | |
| 
 | |
| // Gitignore reads the content of a gitignore locale from static/bindata or custom path.
 | |
| func Gitignore(name string) ([]byte, error) {
 | |
| 	return AssetFS().ReadFile("gitignore", name)
 | |
| }
 | |
| 
 | |
| // License reads the content of a specific license from static/bindata or custom path.
 | |
| func License(name string) ([]byte, error) {
 | |
| 	return AssetFS().ReadFile("license", name)
 | |
| }
 | |
| 
 | |
| // Labels reads the content of a specific labels from static/bindata or custom path.
 | |
| func Labels(name string) ([]byte, error) {
 | |
| 	return AssetFS().ReadFile("label", name)
 | |
| }
 |