From 3c537986342dc704f7897cd4a11119ffbbf4f6b0 Mon Sep 17 00:00:00 2001 From: Nilesh Patra Date: Thu, 6 Jul 2023 18:25:33 +0000 Subject: [PATCH] Set debug log dir to ~/.local/state/gomuks on linux --- debug/debug.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/debug/debug.go b/debug/debug.go index 315d56e..4a0a1de 100644 --- a/debug/debug.go +++ b/debug/debug.go @@ -24,6 +24,7 @@ import ( "os" "os/user" "path/filepath" + "runtime" "runtime/debug" "time" @@ -35,7 +36,23 @@ var RecoverPrettyPanic bool var DeadlockDetection bool var WriteLogs bool var OnRecover func() -var LogDirectory = filepath.Join(os.TempDir(), "gomuks-"+getUname()) +var LogDirectory = GetUserDebugDir() + +func GetUserDebugDir() string { + if runtime.GOOS == "windows" || runtime.GOOS == "darwin" { + return filepath.Join(os.TempDir(), "gomuks-"+getUname()) + } + // See https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html + if xdgStateHome := os.Getenv("XDG_STATE_HOME"); xdgStateHome != "" { + return xdgStateHome + } + home := os.Getenv("HOME") + if home == "" { + fmt.Println("XDG_STATE_HOME and HOME are both unset") + os.Exit(1) + } + return filepath.Join(home, ".local", "state", "gomuks") +} func getUname() string { currUser, err := user.Current()