MCPcopy Create free account
hub / github.com/auth0/auth0-cli / backupAndOverwrite

Function backupAndOverwrite

internal/cli/acul_screen_scaffolding.go:257–295  ·  view source on GitHub ↗

backupAndOverwrite backs up edited files, then overwrites them with source files.

(cli *cli, edited []string, sourceRoot, destRoot string)

Source from the content-addressed store, hash-verified

255
256// backupAndOverwrite backs up edited files, then overwrites them with source files.
257func backupAndOverwrite(cli *cli, edited []string, sourceRoot, destRoot string) error {
258 backupRoot := filepath.Join(destRoot, "back_up")
259
260 // Remove existing backup folder if it exists.
261 if _, err := os.Stat(backupRoot); err == nil {
262 if err := os.RemoveAll(backupRoot); err != nil {
263 return fmt.Errorf("failed to clear existing backup folder: %w", err)
264 }
265 }
266
267 // Create a fresh backup folder.
268 if err := os.MkdirAll(backupRoot, 0755); err != nil {
269 return fmt.Errorf("failed to create backup directory: %w", err)
270 }
271
272 for _, relPath := range edited {
273 destFile := filepath.Join(destRoot, relPath)
274 backupFile := filepath.Join(backupRoot, relPath)
275 sourceFile := filepath.Join(sourceRoot, relPath)
276
277 if err := os.MkdirAll(filepath.Dir(backupFile), 0755); err != nil {
278 cli.renderer.Warnf("Failed to create backup directory for %s: %v", relPath, err)
279 continue
280 }
281
282 if err := copyFile(destFile, backupFile); err != nil {
283 cli.renderer.Warnf("Failed to backup file %s: %v", relPath, err)
284 continue
285 }
286
287 if err := copyFile(sourceFile, destFile); err != nil {
288 cli.renderer.Errorf("Failed to overwrite file %s: %v", relPath, err)
289 continue
290 }
291
292 cli.renderer.Infof("Overwritten: %s", relPath)
293 }
294 return nil
295}
296
297// processDirectories processes files in all base directories relative to chosenTemplate.
298func processDirectories(cli *cli, baseDirs []string, sourceRoot, destRoot string) (missing, edited []string, err error) {

Callers 1

handleEditedFilesFunction · 0.85

Calls 4

copyFileFunction · 0.85
ErrorfMethod · 0.80
WarnfMethod · 0.80
InfofMethod · 0.80

Tested by

no test coverage detected