MCPcopy
hub / github.com/wavetermdev/waveterm / copyDir

Function copyDir

pkg/waveappstore/waveappstore.go:89–117  ·  view source on GitHub ↗
(src, dst string)

Source from the content-addressed store, hash-verified

87}
88
89func 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
119func PublishDraft(draftAppId string) (string, error) {
120 if err := ValidateAppId(draftAppId); err != nil {

Callers 3

PublishDraftFunction · 0.85
RevertDraftFunction · 0.85
MakeDraftFromLocalFunction · 0.85

Calls 4

ModeMethod · 0.80
ReadFileMethod · 0.80
WriteFileMethod · 0.80
IsDirMethod · 0.45

Tested by

no test coverage detected