|
1 | 1 | package main |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "fmt" |
4 | 5 | "os" |
5 | 6 | "path/filepath" |
6 | 7 |
|
@@ -93,23 +94,37 @@ func DefaultConfig() *Config { |
93 | 94 | func LoadConfig() (*Config, error) { |
94 | 95 | cfg := DefaultConfig() |
95 | 96 |
|
| 97 | + // Create notes directory if it doesn't exist |
| 98 | + if err := os.MkdirAll(cfg.NotesDir, 0755); err != nil { |
| 99 | + return nil, fmt.Errorf("failed to create notes directory: %v", err) |
| 100 | + } |
| 101 | + |
| 102 | + // Create archive directory if it doesn't exist |
| 103 | + if err := os.MkdirAll(cfg.ArchiveDir, 0755); err != nil { |
| 104 | + return nil, fmt.Errorf("failed to create archive directory: %v", err) |
| 105 | + } |
| 106 | + |
96 | 107 | configDir, err := getConfigDir() |
97 | 108 | if err != nil { |
98 | 109 | return nil, err |
99 | 110 | } |
100 | 111 |
|
101 | | - configPath := filepath.Join(configDir, "config.yaml") |
102 | | - |
103 | | - // Check if config directory exists, create if not |
| 112 | + // Create config directory if it doesn't exist |
104 | 113 | if err := os.MkdirAll(configDir, 0755); err != nil { |
105 | | - return nil, err |
| 114 | + return nil, fmt.Errorf("failed to create config directory: %v", err) |
106 | 115 | } |
107 | 116 |
|
| 117 | + configPath := filepath.Join(configDir, "config.yaml") |
| 118 | + |
108 | 119 | // Check if config file exists |
109 | 120 | if _, err := os.Stat(configPath); os.IsNotExist(err) { |
110 | | - // Create default config |
111 | | - if err := SaveConfig(cfg); err != nil { |
112 | | - return nil, err |
| 121 | + // Create default config file |
| 122 | + data, err := yaml.Marshal(cfg) |
| 123 | + if err != nil { |
| 124 | + return nil, fmt.Errorf("failed to marshal default config: %v", err) |
| 125 | + } |
| 126 | + if err := os.WriteFile(configPath, data, 0644); err != nil { |
| 127 | + return nil, fmt.Errorf("failed to write default config: %v", err) |
113 | 128 | } |
114 | 129 | return cfg, nil |
115 | 130 | } |
|
0 commit comments