Warn at startup if the provided SCRIPT_TYPE is not on the PATH (#18467)

Several users run Gitea in situations whereby `bash` is not available.
If the `SCRIPT_TYPE` is not changed this will cause hooks to fail.
A simple test to check if the provided type is on the PATH should be
sufficient to warn them about this problem.

Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
zeripath 2022-01-30 16:33:36 +00:00 committed by GitHub
parent 246902cd63
commit e5ec7a086f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,6 +5,7 @@
package setting package setting
import ( import (
"os/exec"
"path" "path"
"path/filepath" "path/filepath"
"strings" "strings"
@ -278,6 +279,10 @@ func newRepository() {
} }
ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash") ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash")
if _, err := exec.LookPath(ScriptType); err != nil {
log.Warn("SCRIPT_TYPE %q is not on the current PATH. Are you sure that this is the correct SCRIPT_TYPE?", ScriptType)
}
if err = Cfg.Section("repository").MapTo(&Repository); err != nil { if err = Cfg.Section("repository").MapTo(&Repository); err != nil {
log.Fatal("Failed to map Repository settings: %v", err) log.Fatal("Failed to map Repository settings: %v", err)
} else if err = Cfg.Section("repository.editor").MapTo(&Repository.Editor); err != nil { } else if err = Cfg.Section("repository.editor").MapTo(&Repository.Editor); err != nil {