Преглед на файлове

custom workDir function to handle speical case in Windows

Unknwon преди 9 години
родител
ревизия
1490e862cc
променени са 1 файла, в които са добавени 12 реда и са изтрити 1 реда
  1. 12 1
      modules/setting/setting.go

+ 12 - 1
modules/setting/setting.go

@@ -168,7 +168,18 @@ func ExecPath() (string, error) {
 // WorkDir returns absolute path of work directory.
 func WorkDir() (string, error) {
 	execPath, err := ExecPath()
-	return path.Dir(strings.Replace(execPath, "\\", "/", -1)), err
+	if err != nil {
+		return execPath, err
+	}
+
+	// Note: we don't use path.Dir here because it does not handle case
+	//	which path starts with two "/" in Windows: "//psf/Home/..."
+	execPath = strings.Replace(execPath, "\\", "/", -1)
+	i := strings.LastIndex(execPath, "/")
+	if i == -1 {
+		return execPath, nil
+	}
+	return execPath[:i], nil
 }
 
 func forcePathSeparator(path string) {