diff --git a/src/system.go b/src/system.go index 592b34a..135fbdf 100644 --- a/src/system.go +++ b/src/system.go @@ -141,7 +141,11 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["udpxy"] = "" defaults["version"] = System.DBVersion defaults["xteveAutoUpdate"] = true - defaults["temp.path"] = System.Folder.Temp + var defaultTempPath = System.Folder.Temp + if len(os.Getenv("XTEVE_CONFIG")) > 0 { + defaultTempPath = System.Folder.Config + "tmp" + string(os.PathSeparator) + } + defaults["temp.path"] = defaultTempPath // Default Werte setzen for key, value := range defaults { @@ -209,8 +213,26 @@ func saveSettings(settings SettingsStruct) (err error) { settings.UserAgent = defaultUserAgent } + settings.TempPath = strings.TrimRight(settings.TempPath, string(os.PathSeparator)) + string(os.PathSeparator) System.Folder.Temp = settings.TempPath + settings.UUID + string(os.PathSeparator) + err = checkFolder(System.Folder.Temp) + if err != nil { + + fallbackTempPath := System.Folder.Config + "tmp" + string(os.PathSeparator) + fallbackTempFolder := fallbackTempPath + settings.UUID + string(os.PathSeparator) + fallbackErr := checkFolder(fallbackTempFolder) + + if fallbackErr != nil { + return err + } + + settings.TempPath = fallbackTempPath + System.Folder.Temp = fallbackTempFolder + showInfo(fmt.Sprintf("Temporary Folder:Fallback to %s", getPlatformPath(System.Folder.Temp))) + + } + err = writeByteToFile(System.File.Settings, []byte(mapToJSON(settings))) if err != nil { return