From 8810ed4827d5056dc013d2861b801cc89216e52f Mon Sep 17 00:00:00 2001 From: Siyuan Date: Sat, 11 Oct 2025 15:48:53 +0000 Subject: [PATCH] fix: error dump directory --- cmd/main.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/cmd/main.go b/cmd/main.go index eb6ac796..d9636088 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -17,7 +17,7 @@ import ( const ( envChildID = "JETKVM_CHILD_ID" - errorDumpDir = "/userdata/jetkvm/" + errorDumpDir = "/userdata/jetkvm/crashdump" errorDumpLastFile = "last-crash.log" errorDumpTemplate = "jetkvm-%s.log" ) @@ -179,6 +179,18 @@ func renameFile(f *os.File, newName string) error { return nil } +func ensureErrorDumpDir() error { + // TODO: check if the directory is writable + f, err := os.Stat(errorDumpDir) + if err == nil && f.IsDir() { + return nil + } + if err := os.MkdirAll(errorDumpDir, 0755); err != nil { + return fmt.Errorf("failed to create error dump directory: %w", err) + } + return nil +} + func createErrorDump(logFile *os.File) { fmt.Println() @@ -187,6 +199,12 @@ func createErrorDump(logFile *os.File) { time.Now().Format("20060102-150405"), ) + // check if the directory exists + if err := ensureErrorDumpDir(); err != nil { + fmt.Printf("failed to ensure error dump directory: %v\n", err) + return + } + filePath := filepath.Join(errorDumpDir, fileName) if err := renameFile(logFile, filePath); err != nil { fmt.Printf("failed to rename file: %v\n", err)