]> source.dussan.org Git - gitea.git/commitdiff
Make gitea work using cmd.exe again (#22073) (#22133)
authorzeripath <art27@cantab.net>
Wed, 14 Dec 2022 13:13:16 +0000 (13:13 +0000)
committerGitHub <noreply@github.com>
Wed, 14 Dec 2022 13:13:16 +0000 (07:13 -0600)
Backport #22073

Gitea will attempt to lookup its location using LookPath however, this
fails on cmd.exe if gitea is in the current working directory.

exec.LookPath will return an exec.ErrDot error which we can test for and
then simply using filepath.Abs(os.Args[0]) to absolute gitea against the
current working directory.

Fix #22063

Signed-off-by: Andrew Thornton <art27@cantab.net>
modules/setting/setting.go

index bb2281f13b244fee67a728a96bb738e495bf7cc6..5fe4682968b3403e03d17e8820983f6fa459c66e 100644 (file)
@@ -464,6 +464,13 @@ func getAppPath() (string, error) {
                appPath, err = exec.LookPath(os.Args[0])
        }
 
+       if err != nil {
+               // FIXME: Once we switch to go 1.19 use !errors.Is(err, exec.ErrDot)
+               if !strings.Contains(err.Error(), "cannot run executable found relative to current directory") {
+                       return "", err
+               }
+               appPath, err = filepath.Abs(os.Args[0])
+       }
        if err != nil {
                return "", err
        }