Commit 324f7959 authored by Johnny's avatar Johnny

fix: improve default data directory handling

parent d3ed069d
...@@ -54,19 +54,28 @@ func checkDataDir(dataDir string) (string, error) { ...@@ -54,19 +54,28 @@ func checkDataDir(dataDir string) (string, error) {
} }
func (p *Profile) Validate() error { func (p *Profile) Validate() error {
if !p.Demo && p.Data == "" { // Set default data directory if not specified
if p.Data == "" {
if p.Demo {
// In demo mode, use a temporary directory or current directory
p.Data = "."
} else {
// In production mode, use system directory
if runtime.GOOS == "windows" { if runtime.GOOS == "windows" {
p.Data = filepath.Join(os.Getenv("ProgramData"), "memos") p.Data = filepath.Join(os.Getenv("ProgramData"), "memos")
} else {
p.Data = "/var/opt/memos"
}
}
}
// Create data directory if it doesn't exist
if _, err := os.Stat(p.Data); os.IsNotExist(err) { if _, err := os.Stat(p.Data); os.IsNotExist(err) {
if err := os.MkdirAll(p.Data, 0770); err != nil { if err := os.MkdirAll(p.Data, 0770); err != nil {
slog.Error("failed to create data directory", slog.String("data", p.Data), slog.String("error", err.Error())) slog.Error("failed to create data directory", slog.String("data", p.Data), slog.String("error", err.Error()))
return err return err
} }
} }
} else {
p.Data = "/var/opt/memos"
}
}
dataDir, err := checkDataDir(p.Data) dataDir, err := checkDataDir(p.Data)
if err != nil { if err != nil {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment