code.gitea.io/gitea@v1.22.3/modules/templates/base.go (about)

     1  // Copyright 2020 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package templates
     5  
     6  import (
     7  	"slices"
     8  	"strings"
     9  
    10  	"code.gitea.io/gitea/modules/assetfs"
    11  	"code.gitea.io/gitea/modules/setting"
    12  )
    13  
    14  func AssetFS() *assetfs.LayeredFS {
    15  	return assetfs.Layered(CustomAssets(), BuiltinAssets())
    16  }
    17  
    18  func CustomAssets() *assetfs.Layer {
    19  	return assetfs.Local("custom", setting.CustomPath, "templates")
    20  }
    21  
    22  func ListWebTemplateAssetNames(assets *assetfs.LayeredFS) ([]string, error) {
    23  	files, err := assets.ListAllFiles(".", true)
    24  	if err != nil {
    25  		return nil, err
    26  	}
    27  	return slices.DeleteFunc(files, func(file string) bool {
    28  		return strings.HasPrefix(file, "mail/") || !strings.HasSuffix(file, ".tmpl")
    29  	}), nil
    30  }
    31  
    32  func ListMailTemplateAssetNames(assets *assetfs.LayeredFS) ([]string, error) {
    33  	files, err := assets.ListAllFiles(".", true)
    34  	if err != nil {
    35  		return nil, err
    36  	}
    37  	return slices.DeleteFunc(files, func(file string) bool {
    38  		return !strings.HasPrefix(file, "mail/") || !strings.HasSuffix(file, ".tmpl")
    39  	}), nil
    40  }