forked from kevadesu/forgejo
Handle and propagate errors when checking if paths are Dirs, Files or Exist (#13186)
* Ensure errors from IsDir propagate * Handle errors when checking IsFile * Handle and propagate errors from IsExist * Update modules/templates/static.go * Update modules/templates/static.go * Return after ctx.ServerError * Apply suggestions from code review * Fix tests The previous merge managed to break repo_form.go Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
parent
5b75f17043
commit
742e21aeba
29 changed files with 384 additions and 94 deletions
|
@ -11,7 +11,9 @@ import (
|
|||
"io/ioutil"
|
||||
"path"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
|
||||
"github.com/unknwon/com"
|
||||
)
|
||||
|
@ -32,7 +34,11 @@ func Dir(name string) ([]string, error) {
|
|||
|
||||
customDir := path.Join(setting.CustomPath, "options", name)
|
||||
|
||||
if com.IsDir(customDir) {
|
||||
isDir, err := util.IsDir(customDir)
|
||||
if err != nil {
|
||||
return []string{}, fmt.Errorf("Unabe to check if custom directory %s is a directory. %v", customDir, err)
|
||||
}
|
||||
if isDir {
|
||||
files, err := com.StatDir(customDir, true)
|
||||
|
||||
if err != nil {
|
||||
|
@ -44,7 +50,11 @@ func Dir(name string) ([]string, error) {
|
|||
|
||||
staticDir := path.Join(setting.StaticRootPath, "options", name)
|
||||
|
||||
if com.IsDir(staticDir) {
|
||||
isDir, err = util.IsDir(staticDir)
|
||||
if err != nil {
|
||||
return []string{}, fmt.Errorf("Unabe to check if static directory %s is a directory. %v", staticDir, err)
|
||||
}
|
||||
if isDir {
|
||||
files, err := com.StatDir(staticDir, true)
|
||||
|
||||
if err != nil {
|
||||
|
@ -86,13 +96,21 @@ func Labels(name string) ([]byte, error) {
|
|||
func fileFromDir(name string) ([]byte, error) {
|
||||
customPath := path.Join(setting.CustomPath, "options", name)
|
||||
|
||||
if com.IsFile(customPath) {
|
||||
isFile, err := util.IsFile(customPath)
|
||||
if err != nil {
|
||||
log.Error("Unable to check if %s is a file. Error: %v", customPath, err)
|
||||
}
|
||||
if isFile {
|
||||
return ioutil.ReadFile(customPath)
|
||||
}
|
||||
|
||||
staticPath := path.Join(setting.StaticRootPath, "options", name)
|
||||
|
||||
if com.IsFile(staticPath) {
|
||||
isFile, err = util.IsFile(staticPath)
|
||||
if err != nil {
|
||||
log.Error("Unable to check if %s is a file. Error: %v", staticPath, err)
|
||||
}
|
||||
if isFile {
|
||||
return ioutil.ReadFile(staticPath)
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,9 @@ import (
|
|||
"io/ioutil"
|
||||
"path"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
|
||||
"github.com/unknwon/com"
|
||||
)
|
||||
|
@ -31,8 +33,11 @@ func Dir(name string) ([]string, error) {
|
|||
)
|
||||
|
||||
customDir := path.Join(setting.CustomPath, "options", name)
|
||||
|
||||
if com.IsDir(customDir) {
|
||||
isDir, err := util.IsDir(customDir)
|
||||
if err != nil {
|
||||
return []string{}, fmt.Errorf("Failed to check if custom directory %s is a directory. %v", err)
|
||||
}
|
||||
if isDir {
|
||||
files, err := com.StatDir(customDir, true)
|
||||
|
||||
if err != nil {
|
||||
|
@ -100,7 +105,11 @@ func Labels(name string) ([]byte, error) {
|
|||
func fileFromDir(name string) ([]byte, error) {
|
||||
customPath := path.Join(setting.CustomPath, "options", name)
|
||||
|
||||
if com.IsFile(customPath) {
|
||||
isFile, err := util.IsFile(customPath)
|
||||
if err != nil {
|
||||
log.Error("Unable to check if %s is a file. Error: %v", customPath, err)
|
||||
}
|
||||
if isFile {
|
||||
return ioutil.ReadFile(customPath)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue