MCPcopy Create free account
hub / github.com/baidu/EasyFaaS / CopyFile

Function CopyFile

pkg/funclet/helper.go:106–148  ·  view source on GitHub ↗
(src, dst string, mode os.FileMode)

Source from the content-addressed store, hash-verified

104}
105
106func CopyFile(src, dst string, mode os.FileMode) (err error) {
107 in, err := os.Open(src)
108 if err != nil {
109 return
110 }
111 defer in.Close()
112
113 out, err := os.Create(dst)
114 if err != nil {
115 return
116 }
117 defer func() {
118 if e := out.Close(); e != nil {
119 err = e
120 }
121 }()
122
123 _, err = io.Copy(out, in)
124 if err != nil {
125 return
126 }
127
128 err = out.Sync()
129 if err != nil {
130 return
131 }
132
133 si, err := os.Stat(src)
134 if err != nil {
135 return
136 }
137
138 if mode != 0 {
139 err = os.Chmod(dst, mode)
140 } else {
141 err = os.Chmod(dst, si.Mode())
142 }
143 if err != nil {
144 return
145 }
146
147 return
148}
149
150func CopyDir(src string, dst string, mode os.FileMode) (err error) {
151 src = filepath.Clean(src)

Callers 1

CopyDirFunction · 0.85

Calls 5

SyncMethod · 0.80
ModeMethod · 0.80
CloseMethod · 0.65
CreateMethod · 0.65
CopyMethod · 0.45

Tested by

no test coverage detected