MCPcopy
hub / github.com/spicetify/cli / Copy

Function Copy

src/utils/utils.go:84–138  ·  view source on GitHub ↗

Copy .

(src, dest string, recursive bool, filters []string)

Source from the content-addressed store, hash-verified

82
83// Copy .
84func Copy(src, dest string, recursive bool, filters []string) error {
85 dir, err := os.ReadDir(src)
86 if err != nil {
87 return err
88 }
89
90 os.MkdirAll(dest, 0700)
91
92 for _, file := range dir {
93 fileName := file.Name()
94 fSrcPath := filepath.Join(src, fileName)
95
96 fDestPath := filepath.Join(dest, fileName)
97 if file.IsDir() && recursive {
98 os.MkdirAll(fDestPath, 0700)
99 if err = Copy(fSrcPath, fDestPath, true, filters); err != nil {
100 return err
101 }
102 } else {
103 if len(filters) > 0 {
104 isMatch := false
105
106 for _, filter := range filters {
107 if strings.Contains(fileName, filter) {
108 isMatch = true
109 break
110 }
111 }
112
113 if !isMatch {
114 continue
115 }
116 }
117
118 fSrc, err := os.Open(fSrcPath)
119 if err != nil {
120 return err
121 }
122 defer fSrc.Close()
123
124 fDest, err := os.OpenFile(
125 fDestPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0700)
126 if err != nil {
127 return err
128 }
129 defer fDest.Close()
130
131 _, err = io.Copy(fDest, fSrc)
132 if err != nil {
133 return err
134 }
135 }
136 }
137 return nil
138}
139
140// CopyFile .
141func CopyFile(srcPath, dest string) error {

Callers 8

StartFunction · 0.92
BackupFunction · 0.92
RestoreFunction · 0.92
ApplyFunction · 0.92
RefreshAppsFunction · 0.92
UserAssetFunction · 0.92
MigrateConfigFolderFunction · 0.85
MigrateFoldersFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected