MCPcopy Create free account
hub / github.com/coder/envbuilder / copyFile

Function copyFile

envbuilder.go:1617–1639  ·  view source on GitHub ↗
(fs billy.Filesystem, src, dst string, mode fs.FileMode)

Source from the content-addressed store, hash-verified

1615}
1616
1617func copyFile(fs billy.Filesystem, src, dst string, mode fs.FileMode) error {
1618 srcF, err := fs.Open(src)
1619 if err != nil {
1620 return fmt.Errorf("open src file: %w", err)
1621 }
1622 defer srcF.Close()
1623
1624 err = fs.MkdirAll(filepath.Dir(dst), mode)
1625 if err != nil {
1626 return fmt.Errorf("create destination dir failed: %w", err)
1627 }
1628
1629 dstF, err := fs.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, mode)
1630 if err != nil {
1631 return fmt.Errorf("open dest file for writing: %w", err)
1632 }
1633 defer dstF.Close()
1634
1635 if _, err := io.Copy(dstF, srcF); err != nil {
1636 return fmt.Errorf("copy failed: %w", err)
1637 }
1638 return nil
1639}
1640
1641func writeFile(fs billy.Filesystem, name string, data []byte, perm fs.FileMode) error {
1642 f, err := fs.OpenFile(name, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, perm)

Callers 2

runFunction · 0.85
RunCacheProbeFunction · 0.85

Calls 3

CloseMethod · 0.80
MkdirAllMethod · 0.65
OpenFileMethod · 0.65

Tested by

no test coverage detected