MCPcopy Create free account
hub / github.com/danielmiessler/Fabric / movePatterns

Method movePatterns

internal/tools/patterns_loader.go:172–212  ·  view source on GitHub ↗

movePatterns copies the new patterns into the config directory

()

Source from the content-addressed store, hash-verified

170
171// movePatterns copies the new patterns into the config directory
172func (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
214func (o *PatternsLoader) gitCloneAndCopy() (err error) {
215 // Create temp folder if it doesn't exist

Callers 1

PopulateDBMethod · 0.95

Calls 2

PersistPatternsMethod · 0.95
TFunction · 0.92

Tested by

no test coverage detected