in cmd/release/minor/projects/projects.go [63:88]
func copyDir(prevReleaseBranchPath, nextReleaseBranchPath string) error {
prevReleaseBranchDirs, err := os.ReadDir(prevReleaseBranchPath)
if err != nil {
return fmt.Errorf("reading directory at path %s: %w", prevReleaseBranchPath, err)
} else if len(prevReleaseBranchDirs) == 0 {
return nil
}
for _, prevReleaseBranchChildDir := range prevReleaseBranchDirs {
prevReleaseBranchChildPath := filepath.Join(prevReleaseBranchPath, prevReleaseBranchChildDir.Name())
nextReleaseBranchDirPath := filepath.Join(nextReleaseBranchPath, prevReleaseBranchChildDir.Name())
if prevReleaseBranchChildDir.IsDir() {
if err = os.Mkdir(nextReleaseBranchDirPath, 0755); err != nil {
return fmt.Errorf("creating new directory to copy %s", nextReleaseBranchDirPath)
}
if err = copyDir(prevReleaseBranchChildPath, nextReleaseBranchDirPath); err != nil {
return fmt.Errorf("copying child directory %s", prevReleaseBranchChildPath)
}
} else {
if err = copyFile(prevReleaseBranchChildPath, nextReleaseBranchDirPath); err != nil {
return fmt.Errorf("coping file: %w", err)
}
}
}
return nil
}