movePatterns copies the new patterns into the config directory
()
| 170 | |
| 171 | // movePatterns copies the new patterns into the config directory |
| 172 | func (o *PatternsLoader) movePatterns() (err error) { |
| 173 | if err = os.MkdirAll(o.Patterns.Dir, os.ModePerm); err != nil { |
| 174 | return |
| 175 | } |
| 176 | |
| 177 | patternsDir := o.tempPatternsFolder |
| 178 | if err = o.PersistPatterns(); err != nil { |
| 179 | return |
| 180 | } |
| 181 | |
| 182 | if err = copy.Copy(patternsDir, o.Patterns.Dir); err != nil { // copies the patterns to the config directory |
| 183 | return |
| 184 | } |
| 185 | |
| 186 | // Verify that patterns were actually copied before creating the loaded marker |
| 187 | var entries []os.DirEntry |
| 188 | if entries, err = os.ReadDir(o.Patterns.Dir); err != nil { |
| 189 | return |
| 190 | } |
| 191 | |
| 192 | // Count actual pattern directories (exclude the loaded file itself) |
| 193 | patternCount := 0 |
| 194 | for _, entry := range entries { |
| 195 | if entry.IsDir() { |
| 196 | patternCount++ |
| 197 | } |
| 198 | } |
| 199 | |
| 200 | if patternCount == 0 { |
| 201 | err = fmt.Errorf(i18n.T("patterns_no_patterns_copied"), o.Patterns.Dir) |
| 202 | return |
| 203 | } |
| 204 | |
| 205 | //create an empty file to indicate that the patterns have been updated if not exists |
| 206 | if _, err = os.Create(o.loadedFilePath); err != nil { |
| 207 | return fmt.Errorf(i18n.T("patterns_failed_loaded_marker"), o.loadedFilePath, err) |
| 208 | } |
| 209 | |
| 210 | err = os.RemoveAll(patternsDir) |
| 211 | return |
| 212 | } |
| 213 | |
| 214 | func (o *PatternsLoader) gitCloneAndCopy() (err error) { |
| 215 | // Create temp folder if it doesn't exist |
no test coverage detected