(src, dst string)
| 87 | } |
| 88 | |
| 89 | func copyDir(src, dst string) error { |
| 90 | if err := os.RemoveAll(dst); err != nil && !os.IsNotExist(err) { |
| 91 | return fmt.Errorf("failed to remove existing directory: %w", err) |
| 92 | } |
| 93 | if err := os.MkdirAll(filepath.Dir(dst), 0755); err != nil { |
| 94 | return fmt.Errorf("failed to create parent directory: %w", err) |
| 95 | } |
| 96 | |
| 97 | return filepath.Walk(src, func(path string, info os.FileInfo, err error) error { |
| 98 | if err != nil { |
| 99 | return err |
| 100 | } |
| 101 | relPath, err := filepath.Rel(src, path) |
| 102 | if err != nil { |
| 103 | return err |
| 104 | } |
| 105 | dstPath := filepath.Join(dst, relPath) |
| 106 | |
| 107 | if info.IsDir() { |
| 108 | return os.MkdirAll(dstPath, info.Mode()) |
| 109 | } |
| 110 | |
| 111 | data, err := os.ReadFile(path) |
| 112 | if err != nil { |
| 113 | return err |
| 114 | } |
| 115 | return os.WriteFile(dstPath, data, info.Mode()) |
| 116 | }) |
| 117 | } |
| 118 | |
| 119 | func PublishDraft(draftAppId string) (string, error) { |
| 120 | if err := ValidateAppId(draftAppId); err != nil { |
no test coverage detected