diff options
| author | Grail Finder <wohilas@gmail.com> | 2025-11-24 11:07:55 +0300 |
|---|---|---|
| committer | Grail Finder <wohilas@gmail.com> | 2025-11-24 11:08:50 +0300 |
| commit | 504af1a2132ca51f50ab24cd95f2690a4d45323e (patch) | |
| tree | 32ac05037ef0b8c75fb2b0dece6ae32ec2f02491 /tui.go | |
| parent | 3b64baf9ebf468e5f28f8eb2295ecba16a820f99 (diff) | |
Enha: update config; create ragdir if does not exist
Diffstat (limited to 'tui.go')
| -rw-r--r-- | tui.go | 30 |
1 files changed, 26 insertions, 4 deletions
@@ -926,11 +926,33 @@ func init() { // menu of the text files from defined rag directory files, err := os.ReadDir(cfg.RAGDir) if err != nil { - logger.Error("failed to read dir", "dir", cfg.RAGDir, "error", err) - if notifyerr := notifyUser("failed to open RAG files dir", err.Error()); notifyerr != nil { - logger.Error("failed to send notification", "error", notifyerr) + // Check if the error is because the directory doesn't exist + if os.IsNotExist(err) { + // Create the RAG directory if it doesn't exist + if mkdirErr := os.MkdirAll(cfg.RAGDir, 0755); mkdirErr != nil { + logger.Error("failed to create RAG directory", "dir", cfg.RAGDir, "error", mkdirErr) + if notifyerr := notifyUser("failed to create RAG directory", mkdirErr.Error()); notifyerr != nil { + logger.Error("failed to send notification", "error", notifyerr) + } + return nil + } + // Now try to read the directory again after creating it + files, err = os.ReadDir(cfg.RAGDir) + if err != nil { + logger.Error("failed to read dir after creating it", "dir", cfg.RAGDir, "error", err) + if notifyerr := notifyUser("failed to read RAG directory", err.Error()); notifyerr != nil { + logger.Error("failed to send notification", "error", notifyerr) + } + return nil + } + } else { + // Other error (permissions, etc.) + logger.Error("failed to read dir", "dir", cfg.RAGDir, "error", err) + if notifyerr := notifyUser("failed to open RAG files dir", err.Error()); notifyerr != nil { + logger.Error("failed to send notification", "error", notifyerr) + } + return nil } - return nil } fileList := []string{} for _, f := range files { |
