MCPcopy Index your code
hub / github.com/perkeep/perkeep / cpFile

Function cpFile

dev/devcam/devcam.go:96–129  ·  view source on GitHub ↗
(src, dst string)

Source from the content-addressed store, hash-verified

94}
95
96func cpFile(src, dst string) error {
97 sfi, err := os.Stat(src)
98 if err != nil {
99 return err
100 }
101 if !sfi.Mode().IsRegular() {
102 return fmt.Errorf("cpFile can't deal with non-regular file %s", src)
103 }
104
105 dstDir := filepath.Dir(dst)
106 if err := os.MkdirAll(dstDir, 0755); err != nil {
107 return err
108 }
109
110 df, err := os.Create(dst)
111 if err != nil {
112 return err
113 }
114 sf, err := os.Open(src)
115 if err != nil {
116 return err
117 }
118 defer sf.Close()
119
120 n, err := io.Copy(df, sf)
121 if err == nil && n != sfi.Size() {
122 err = fmt.Errorf("copied wrong size for %s -> %s: copied %d; want %d", src, dst, n, sfi.Size())
123 }
124 cerr := df.Close()
125 if err == nil {
126 err = cerr
127 }
128 return err
129}
130
131func handleSignals(camliProc *os.Process) {
132 c := make(chan os.Signal, 1)

Callers 1

cpDirFunction · 0.70

Calls 7

ModeMethod · 0.80
CreateMethod · 0.80
StatMethod · 0.65
MkdirAllMethod · 0.65
OpenMethod · 0.65
CloseMethod · 0.65
SizeMethod · 0.65

Tested by

no test coverage detected